Здравствуйте, D. Mon, Вы писали:
DM>Кстати, to add insult to injury, у окамла же целых два официальных синтаксиса есть — дефолтный и revised:
DM>http://caml.inria.fr/pub/docs/manual-camlp4/manual007.html
DM>Некоторые опытные камловоды предпочитают revised.
Это не insult, а инфаркт!
У окамла есть ряд вкусностей — параметризованные модули, рассыпные варианты, объекты наконец.
Но подход к каждой из них
словно разные люди одновременно и не сговариваясь.
А теперь ещё и ревизия, где понадёргали из фадиеза и, прости господи, из Си.
К>>подчёркиваю, я в окамл только по праздникам играю
DM>Разумеется, программирование на окамле — всегда праздник!
Ага, и выражение лица — как у того студента из приключений Шурика.
Здравствуйте, D. Mon, Вы писали:
DM>Внутре обычного модуля мы же можем определять типы с параметрами ('a t), а это уже ничто иное, как отображение типов. Для этого окамловский функтор не требуется. Даже больше, мы можем определять естественные преобразования (отображения функторов), вроде List.hd, которое, как и подобает ест.преобразованию есть функция из объектов одной категории в стрелки другой (из типа 'a в функцию 'a list -> 'a). Если теоркатовские функторы изображать окамловскими функторами, то чем изображать естественные преобразования? Там и слова такого уже нет.
А внутри одного типа мы можем вообще без параметризованных типов обойтись, будут экземпляры типа, функции над ним и функции высшего порядка.
А внутри одного значения будет id, id, id
Т.е. вниз мы двигаться умеем. А окамл даёт возможность двигаться и вверх, вводя модули и стрелки над модулями.
К>>Я потому и спрашиваю: нет ли смысла и возможности сделать...
DM>Да, нет смысла.
Да нет наверное
К>>Что мешало им хотя бы скобки блоков одинаково расставлять? sig...end, struct...end, let...;;, type...CRLF ?!
DM>У let и type нет закрывающей скобки, можно прямо подряд писать. К CRLF и отступам чувствительности нет.
У let есть ;;, а у type — любой терминальный символ, который не может встретиться в объявлении типа.
type foo = bla bla bla bla bla bla type bar = .....
( )
К>>И из-за адского, хотя и непротиворечивого, синтаксиса у них парсер, по-видимому, тупо рекурсивный спуск делает, до первой ошибки. Которую он диагностирует как "Syntax error".
DM>Кажися, там все же LR парсер а-ля yacc. Собственно, ocamlyacc входит в поставку.
Ну да, но работает он тупо, до первой звезды.