Re[19]: Что такого привлекательного в Nemerle?
От: FR  
Дата: 01.04.10 10:31
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Разве необходимость объявлять типы перед тем как они используются — это придумка F#-а? Я в ОКамле не силен, но что-то мне казалось, что это из него пошло.


Необходимость объявлять есть, но также есть возможность предварительного (неконкретизированного) объявления типов и сигнатур функций. Для этого есть .mli файлы во многом аналог сишных заголовочных файлов.

Например в .mli такое объявление:

type command 

val command: ?doc:string -> string -> Arg.spec -> command


в .ml конкретизация:

type command =
    { doc : string(**The documentation associated to the keyword, possibly empty.*);
      kwd : string(**The keyword. Should start with "-"*);
      spec : Arg.spec (**The behavior associated to the keyword*);
    }

let command ?(doc="") kwd spec =
  { doc = doc;
    kwd = kwd;
    spec= spec }



VD>В прочем, может быть это проблемы расширения алгоритма вывода типов сделанного в F#.



VD>Что до модулей, то в F# модуль — это сборка. А сборки в дотнете сильно боше чем модули (юниты) в других языках. И вот в их рамках F# обязывает располагать типы последовательно. А так как он позволяет их разносить по отдельным файлам, то требуют располагать файлы в определенной последовательности.


В OCaml подобная заморочка есть только у линкера, в исходном же коде можно произвольно располагать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.