http://thesz.livejournal.com/ ([identity profile] thesz.livejournal.com) wrote in [personal profile] stdray 2012-07-16 02:29 pm (UTC)

Я скажу нехитрую вещь, которую уже неоднократно повторял: синтаксические расширения типа макросов и EDSL служат для той же цели, что и типы - для раннего обнаружения ошибок. "Наглядность" - это быстрое понимание структуры кода и обнаружение неисправностей.

Только типы 1) могут быть сущностями первого класса и 2) много мощнее макросов.

>EDSL - это язык, оперирующий терминами предментной области. При помощий макросов их действительно возможно создать.

Предметные области могут быть параметризованы. Предметная область "язык программирования" может быть параметризована предметной областью компилятор и предметной областью интерпретатор. И обработка данных в этих двух комбинациях будет разной - полный сбор и преобразование в компиляторе и частичный сбор и преобразование в интерпретаторе.

Валяйте, сделайте такое на макросах.

>>Хаскель чем хорош? Практически всё является первоклассной сущностью, функцией.
>do-нотация не является первоклассной сущностью и ее нелья никуда передать. И опять же, я не могу представить себе семантику такой "передачи".

До изобретения do-нотации использовали >>=, >> и return. И сейчас используют. И теряют совсем немного (и часто выигрывают).

>Система типов и макросистема - непротиворечивые вещи, которые можно использовать одновременно.

А можно использовать только систему типов. См. зависимые типы данных.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting