Здравствуйте, alvas, Вы писали:
A>Предлагаю в этой ветке обсудить какие возможности отсутствуют в Nemerle. A>В общем чего людям в жизни не хватает
Каррирование
(Шучу).
Ну так:
— структурная типизация (не очень понятно, как сделать — на основе кортежей?)
— higher rank polymorphism (непонятно, как сделать)
— поддержка экви-рекурсии (хз вообще как делать)
— зависимые типы (аналогично)
— что-то типа трейтов в скале не помешало бы (как делать — хз. single parameter сделать можно, все что дальше упирается в убогость генериков)
Из того поменять:
— Поведение оператора _ (плейсхолдера). Более логичным мне кажется такое поведение: считать все выражение, в котором содержится _, единой функцией.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, alvas, Вы писали:
A>>Предлагаю в этой ветке обсудить какие возможности отсутствуют в Nemerle. A>>В общем чего людям в жизни не хватает
ВВ>Каррирование
Подскажи пожалуйста чем Каррирование отличается/лучше от частичного примениения.
ВВ>(Шучу).
ВВ>Ну так: ВВ>- структурная типизация (не очень понятно, как сделать — на основе кортежей?) ВВ>- higher rank polymorphism (непонятно, как сделать) ВВ>- поддержка экви-рекурсии (хз вообще как делать) ВВ>- зависимые типы (аналогично) ВВ>- что-то типа трейтов в скале не помешало бы (как делать — хз. single parameter сделать можно, все что дальше упирается в убогость генериков)
Так как это читают и простые смертные просьба давать ссылки, чтобы можно было почитать что все это означает
ВВ>Из того поменять: ВВ>- Поведение оператора _ (плейсхолдера). Более логичным мне кажется такое поведение: считать все выражение, в котором содержится _, единой функцией.
Здравствуйте, alvas, Вы писали:
ВВ>>Каррирование A>Подскажи пожалуйста чем Каррирование отличается/лучше от частичного примениения.
Боюсь, если я сейчас скажу, что карррирование "ортогонально" частичному применению, то меня немедленно забанят
ВВ>>- структурная типизация (не очень понятно, как сделать — на основе кортежей?) ВВ>>- higher rank polymorphism (непонятно, как сделать) ВВ>>- поддержка экви-рекурсии (хз вообще как делать) ВВ>>- зависимые типы (аналогично) ВВ>>- что-то типа трейтов в скале не помешало бы (как делать — хз. single parameter сделать можно, все что дальше упирается в убогость генериков) A>Так как это читают и простые смертные просьба давать ссылки, чтобы можно было почитать что все это означает
Последние два пункта там вполне относятся к Немерле.
В целом, Немерле сейчас слишком завязан на свой текущий бэкенд в виде CLR. То, что умеет CLR (а умеет он не так много), умеет и Немерле. А то, что не умеет — вы. Генерики вот в CLR весьма ограниченные — таковые они и в Немерле. Хотелось бы меньшей заточенности под CLR. Например, при компиляции немерлевских генериков можно было бы использовать либо CLR генерики (в простых случаях), либо старый-добрый System.Object.
ВВ>>Из того поменять: ВВ>>- Поведение оператора _ (плейсхолдера). Более логичным мне кажется такое поведение: считать все выражение, в котором содержится _, единой функцией. A>А чем сейчас _ считается?
У меня сейчас Немерле под рукой нет, насколько я помню, там разбор _ зависит от приоритета операций.
Например, "_ * x + y" будет превращено в одну функцию, а "x + y * _" будет разобрано как "x + func". Что, в целом, как-то неочевидно.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Здравствуйте, alvas, Вы писали:
ВВ>>>Каррирование A>>Подскажи пожалуйста чем Каррирование отличается/лучше от частичного примениения.
ВВ>Боюсь, если я сейчас скажу, что карррирование "ортогонально" частичному применению, то меня немедленно забанят
Можно в личку
ВВ>>>- структурная типизация (не очень понятно, как сделать — на основе кортежей?) ВВ>>>- higher rank polymorphism (непонятно, как сделать) ВВ>>>- поддержка экви-рекурсии (хз вообще как делать) ВВ>>>- зависимые типы (аналогично) ВВ>>>- что-то типа трейтов в скале не помешало бы (как делать — хз. single parameter сделать можно, все что дальше упирается в убогость генериков) A>>Так как это читают и простые смертные просьба давать ссылки, чтобы можно было почитать что все это означает
ВВ>Ну в общем все это гуглится.
ВВ>Кстати, нашел вот такую ссылочку: ВВ>http://intoverflow.wordpress.com/2010/06/30/haskell-features-id-like-to-see-in-other-languages/
ВВ>Последние два пункта там вполне относятся к Немерле.
ВВ>В целом, Немерле сейчас слишком завязан на свой текущий бэкенд в виде CLR. То, что умеет CLR (а умеет он не так много), умеет и Немерле. А то, что не умеет — вы. Генерики вот в CLR весьма ограниченные — таковые они и в Немерле. Хотелось бы меньшей заточенности под CLR. Например, при компиляции немерлевских генериков можно было бы использовать либо CLR генерики (в простых случаях), либо старый-добрый System.Object.
Насколько я знаю в джаве они еще хуже. А где правильные генерики?
Здравствуйте, Воронков Василий, Вы писали:
ВВ>- что-то типа трейтов в скале не помешало бы
Если через квазицитаты можно сделать интерфейсы с реализацией методов, то можно на макросах сделать.
Если нет — нужно добавить в компилятор возможность задавать реализацию интерфейсов.
Про трэиты было на старом сайте nemerle.
Кстати при наличии сменного backend'a наверное получится сделать как в haxe — генерация под нужную платформу,
при условии что сам компилятор nemerle будет использовать свою библиотеку, непривязанную к какой либо платформе.
Здравствуйте, Denom, Вы писали:
D>Если через квазицитаты можно сделать интерфейсы с реализацией методов, то можно на макросах сделать. D>Если нет — нужно добавить в компилятор возможность задавать реализацию интерфейсов. D>Про трэиты было на старом сайте nemerle.
Ну сама возможность писать реализацию в интерфейсе мне кажется все же вторичной. Более интересен сам механизм тайп-классов — словари функций, не привязанные к инстансу, со статическим, а не динамическим диспатчем функций ну и, соответстенно, перегрузкой. При этом все же хочется как в Скале, а не как в Хаскель — чтобы тайп-класс сам по себе был бы первоклассным объектом, и его можно было бы явно передать в функцию. Нечто вроде NamedInstances из Хаскелевого wish-листа. (При том, что в той реализации, которая есть в Скале, это получается как бы by design).
D>Кстати при наличии сменного backend'a наверное получится сделать как в haxe — генерация под нужную платформу, D>при условии что сам компилятор nemerle будет использовать свою библиотеку, непривязанную к какой либо платформе.
Собственно, это главное что нужно Немерле — перестать молиться на КЛР и посмотреть на другие платформы. Особенно интересен был бы конечно LLVM.
Здравствуйте, Аноним, Вы писали:
А>тип как первоклассный. То есть разрешить передачу типа в функцию. Тогда возможен отказ от генериков. Уменьшение стадий макросов
Уже есть. Используй макросы и будет тебе счастье. В рантайме это == тормоза. В прочем, тоже никто не мешает Syste.Type передавать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, alvas, Вы писали:
A>Предлагаю в этой ветке обсудить какие возможности отсутствуют в Nemerle.
A>В общем чего людям в жизни не хватает
Компиляция в javascript
Здравствуйте, VladD2, Вы писали:
А>>тип как первоклассный. То есть разрешить передачу типа в функцию. Тогда возможен отказ от генериков. Уменьшение стадий макросов
VD>Уже есть. Используй макросы и будет тебе счастье. В рантайме это == тормоза. В прочем, тоже никто не мешает Syste.Type передавать.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, alvas, Вы писали:
D>>>Компиляция в javascript
A>>А можно поподробней? A>>Спиной чувствую что крутая фича, только не могу понять чем
I>С джаваскриптом кк раз вполне нормально — пишешь себе на своем языке, а код для браузера генерится сам собой.
Я все-таки думал, что не об этом была речь. Или не только об этом