Этот вопрос связан с Как работает головоломка инь-ян?. Пример продолжения в схеме инь-ян выглядит следующим образом: Статья в Википедии:
(let* ((yin
((lambda (cc) (display #\@) cc) (call-with-current-continuation (lambda (c) c))))
(yang
((lambda (cc) (display #\*) cc) (call-with-current-continuation (lambda (c) c)))))
(yin yang))
Я пытаюсь написать эквивалентный фрагмент кода на языке (edit: статически), например SML/NJ, но он дает мне печатные ошибки. Поэтому либо головоломка не печатает, либо я неправильно понимаю синтаксис схемы. Что бы выглядел выше фрагмент кода в SML или Ocaml (с расширением callcc
)?
Изменить: Я думаю, что знаю ответ. Нам нужен рекурсивный тип t
, удовлетворяющий t = t -> s
для некоторого типа s
.
Редактирование редактирования: Нет, это не ответ, рекурсивный тип t
, удовлетворяющий t = t -> t
.