1

我在 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
4

1 回答 1

3

一些提示:

比较不是由===

使用 let 需要关闭

let
 declarations
in
 expression
end

EOF 通常发生在您忘记输入一些分号或忘记关闭诸如 let-in-end 之类的内容时:)

于 2013-11-06T22:28:14.340 回答