Можно ли сделать чтобы функция возвращала результат и функцию, которая возвращает следующий результат и функцию, которая ... ммм? спасибо.
Примерчик.
let clos = ref [1]
let rec continuation () =
match !clos with
| [] -> None
| _ ->
if worldChanged then clos := []
Some(!clos, continuation)
прикол именно в том, чтобы функция возвращала себя новую, а не в том чтобы сделать генератор типа счетчика с созданием объекта, инкапсуляцией и прочими прелестями.