Я скажу нехитрую вещь, которую уже неоднократно повторял: синтаксические расширения типа макросов и EDSL служат для той же цели, что и типы - для раннего обнаружения ошибок. "Наглядность" - это быстрое понимание структуры кода и обнаружение неисправностей.
Только типы 1) могут быть сущностями первого класса и 2) много мощнее макросов.
>EDSL - это язык, оперирующий терминами предментной области. При помощий макросов их действительно возможно создать.
Предметные области могут быть параметризованы. Предметная область "язык программирования" может быть параметризована предметной областью компилятор и предметной областью интерпретатор. И обработка данных в этих двух комбинациях будет разной - полный сбор и преобразование в компиляторе и частичный сбор и преобразование в интерпретаторе.
Валяйте, сделайте такое на макросах.
>>Хаскель чем хорош? Практически всё является первоклассной сущностью, функцией. >do-нотация не является первоклассной сущностью и ее нелья никуда передать. И опять же, я не могу представить себе семантику такой "передачи".
До изобретения do-нотации использовали >>=, >> и return. И сейчас используют. И теряют совсем немного (и часто выигрывают).
>Система типов и макросистема - непротиворечивые вещи, которые можно использовать одновременно.
А можно использовать только систему типов. См. зависимые типы данных.
no subject
Только типы 1) могут быть сущностями первого класса и 2) много мощнее макросов.
>EDSL - это язык, оперирующий терминами предментной области. При помощий макросов их действительно возможно создать.
Предметные области могут быть параметризованы. Предметная область "язык программирования" может быть параметризована предметной областью компилятор и предметной областью интерпретатор. И обработка данных в этих двух комбинациях будет разной - полный сбор и преобразование в компиляторе и частичный сбор и преобразование в интерпретаторе.
Валяйте, сделайте такое на макросах.
>>Хаскель чем хорош? Практически всё является первоклассной сущностью, функцией.
>do-нотация не является первоклассной сущностью и ее нелья никуда передать. И опять же, я не могу представить себе семантику такой "передачи".
До изобретения do-нотации использовали >>=, >> и return. И сейчас используют. И теряют совсем немного (и часто выигрывают).
>Система типов и макросистема - непротиворечивые вещи, которые можно использовать одновременно.
А можно использовать только систему типов. См. зависимые типы данных.