В настоящее время я пытаюсь расширить программу OCaml для друзей. Это огромная коллекция функций, необходимых для некоторого анализа данных. Так как я не сильно похожа на OCaml, я в настоящее время застрял на (для меня) странной реализации List:
type 'a cell = Nil
| Cons of ('a * 'a llist)
and 'a llist = (unit -> 'a cell);;
Я понял, что это реализует какой-то "ленивый" список, но я абсолютно не знаю, как это работает. Мне нужно реализовать функцию Append и Map, основанную на вышеуказанном типе. Кто-нибудь понял, как это сделать?
Любая помощь будет действительно оценена!