这个问题与"阴阳谜如何运作?"有关..根据维基百科的文章,阴阳计划中的延续例子如下所示:
(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))
Run Code Online (Sandbox Code Playgroud)
我试图用(编辑:静态)类型的语言编写一个等效的代码片段,例如SML/NJ,但是它给了我输入错误.所以要么拼图不输入,要么我误解了方案语法.上面的代码在SML或Ocaml(带callcc
扩展名)中会是什么样的?
顺便问一下,这个谜题的来源是什么?它从哪里来的?
编辑:我想我知道答案.我们需要一种t
满足t = t -> s
某种类型的递归类型s
.
编辑编辑:不,不是,答案是一个t
令人满意的递归类型t = t -> t
.
我有一个Makefile.am
用于编译Ocaml源代码的ocamlbuild
.但是,即使我有
AM_INIT_AUTOMAKE([foreign no-dependencies])
Run Code Online (Sandbox Code Playgroud)
在我的configure.ac
,automake认为必须有一个C编译器来安装exectuables.也就是说,如果我将Makefile.am
目标可执行文件放入bin_PROGRAMS
使用ocamlbuild构建,则autoreconf(版本1.11.3)告诉我:
Makefile.am: C source seen but `CC' is undefined
Makefile.am: The usual way to define `CC' is to add `AC_PROG_CC'
Makefile.am: to `configure.ac' and run `autoconf' again.
autoreconf: automake failed with exit status: 1
Run Code Online (Sandbox Code Playgroud)
我不希望有AC_PROG_CC
,因为我的源代码不包括C.它是纯粹的Ocaml程序编写.我能做什么?(我有同样的问题libexec_PROGRAMS
.)