История изменений
Исправление den73, (текущая версия) :
Даже хаскелевые темплейты вышли удачнее.
Спасибо. Если кто-нибудь напишет подобное сопоставление темплейтов Хаскеля с макросистемой лиспа, буду премного благодарен. Хаскель для меня эзотеричен.
Для меня в данном туториале было важно то, что я увидел многое из того, с чем столкнулся при разработке Яре, и даже похожие решения: отдельный интерфейс к лексеру, отдельный к парсеру. Отличие символов языка и символов платформы. Два отдельных парсера. И увидел те проблемы, к-рые ожидал.
Фигня с типами, как я и написал в документе, мне кажется следующей из наличия в языке вывода типов. От этого он во многом неявный и нужно прочитать будущее, чтобы узнать тип.
Я давно предчувствовал, что вывод типов - это не только пряники, поэтому я к этой игрушке всегда холодно относился.
В Яре типы в основном задаются явно, как в самом распоследнем Паскале, поэтому (я надеюсь что) удастся получить доступ к информации о типах своевременно. Впрочем, как я уже писал, я вообще не планирую делать типы в Яре. Для лиспа я делал такую вещь:
(defstruct Моя-Структура Поле1 Поле2)
(defun foo ()
(perga
(:lett Перем Моя-Структура (MAKE-Моя-структура :Поле1 1))
(^ Перем Поле1) ; раскрывается во время
; компиляции в (Моя-Структура-Поле1 Имя)
)))
Исходная версия den73, :
Даже хаскелевые темплейты вышли удачнее.
Спасибо. Если кто-нибудь напишет подобное сопоставление темплейтов Хаскеля с макросистемой лиспа, буду премного благодарен. Хаскель для меня эзотеричен.
Для меня в данном туториале было важно то, что я увидел многое из того, с чем столкнулся при разработке Яре, и даже похожие решения: отдельный интерфейс к лексеру, отдельный к парсеру. Отличие символов языка и символов платформы. Два отдельных парсера. И увидел те проблемы, к-рые ожидал.
Фигня с типами, как я и написал в документе, мне кажется следующей из наличия в языке вывода типов. От этого он во многом неявный и нужно прочитать будущее, чтобы узнать тип.
Я давно предчувствовал, что вывод типов - это не только пряники, поэтому я к этой игрушке всегда холодно относился.
В Яре типы в основном задаются явно, как в самом распоследнем Паскале, поэтому (я надеюсь что) удастся получить доступ к информации о типах своевременно. Впрочем, как я уже писал, я вообще не планирую делать типы в Яре. Для лиспа я делал такую вещь:
(defstruct Моя-Структура Поле1 Поле2)
(defun foo ()
(perga
(:lett Перем Моя-Структура (MAKE-Моя-структура :Поле1 1))
(^ Перем Поле1) ; раскрывается во время компиляции в (Моя-Структура-Поле1 Имя)
)))