Покритикуйте язык
От: dotneter  
Дата: 21.09.16 07:51
Оценка: 30 (2)
https://github.com/ptol/oczor

Основная идея — сделать минимально простой статически типизированный язык и компилировать его в динамически типизированные языки (JavaScript, Lua, Ruby, Elisp)
В языке три основные фичи — анонимные функции, записи и Ad hoc полиморфизм
1. Анонимные функции вполне обычные
x y => x + y

2. На основе записей строится большинство конструкций
x = (foo = 1, bar = 2)

Кортежи, именованные функции и модули это тоже по сути записи
С помощью записей можно например определить тип (Maybe/Optional)
type Maybe a = none | just : a

3. Ad hoc полиморфизм — частично позаимствованный из Хаскеля

ffi eqInt : Int, Int => Bool
ffi eqString : String, String => Bool

class equal a : a => Bool

instance Int equal x y = eqInt x y
instance String equal x y = eqString x y

infix == 4 equal

x = 1 == 1
y = "foo" == "foo"
Talk is cheap. Show me the code.
Re: Покритикуйте язык
От: Lexey Россия  
Дата: 21.09.16 15:31
Оценка:
Здравствуйте, dotneter, Вы писали:

D>Основная идея — сделать минимально простой статически типизированный язык и компилировать его в динамически типизированные языки (JavaScript, Lua, Ruby, Elisp)


А какая целевая аудитория? Если массовая, то не взлетит, ибо 3-ий пункт — это нечитаемый ад для того, кто не в теме.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[2]: Покритикуйте язык
От: dotneter  
Дата: 21.09.16 16:48
Оценка:
Здравствуйте, Lexey, Вы писали:

L>А какая целевая аудитория?

Тем кому нужна статическая типизация в этих языках.

L>Если массовая, то не взлетит, ибо 3-ий пункт — это нечитаемый ад для того, кто не в теме.

Да, язык не для масс.
Talk is cheap. Show me the code.
Re: Покритикуйте язык
От: _NN_ www.nemerleweb.com
Дата: 18.10.16 19:36
Оценка: 1 (1)
Здравствуйте, dotneter, Вы писали:

D>https://github.com/ptol/oczor


D>Основная идея — сделать минимально простой статически типизированный язык и компилировать его в динамически типизированные языки (JavaScript, Lua, Ruby, Elisp)

Для JavaScript уже есть TypeScript и лучше вам вложить силы в этот проект если хотите помочь в этой сфере.

У Ruby есть уже RDL.
Для Lua вариант TypedLua

Ну и наконец Haxe который умеет многое.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.