我在SMLNJ中运行此代码。
val evenfibs=
let
fun SIFT NIL = NIL
| SIFT l =
CONS(0, fn () =>
SIFT(FILTER (fn x => x mod 2 == 0) (TL l) ) );
val oddfibs=
let
fun SIFT NIL = NIL
| SIFT l =
CONS(0, fn () =>
SIFT(FILTER (fn x => x mod 2 <> 0) (TL l) ));
assign3.sml:60.1错误:在EOF中找到语法错误
uncaught exception Compile [Compile: "syntax error"]
raised at: ../compiler/Parse/main/smlfile.sml:15.24-15.46
../compiler/TopLevel/interact/evalloop.sml:44.55
../compiler/TopLevel/interact/evalloop.sml:296.17-296.20
答案 0 :(得分:3)
一些提示:
比较不是由==
进行,而是=
使用let需要关闭,如
let
declarations
in
expression
end
EOF通常发生在您忘记放置一些分号或忘记关闭像let-in-end这样的东西时:)