【发布时间】:2018-03-07 18:56:23
【问题描述】:
我正在实现一个函数,该函数接受两个类型为(int * int * int) 的日期:第一部分是年份,第二部分是月份,第三部分是日期。如果第一个日期早于第二个日期,它应该返回 true。
我想测试该功能,但遇到了问题。这是文件ex1.sml
fun is_older(d1 : (int * int * int), d2 : (int * int * int)) =
if #1 d1 < #2 d2 then
true
else if #2 d1 < #2 d2 then
true
else
#3 d1 < #3 d2
这是应该测试功能的文件ex1-test.sml:
use "ex1.sml"
val test1 = is_older ((1,2,3),(2,3,4)) = true
每当我尝试通过加载 REPL 来运行最后一个文件时,我总是会遇到错误:Error: syntax error: replacing VAL with EQUALOP
但是,如果我将测试放在 ex1.ml 中并将其加载到 REPL 中,它不会给出任何错误。
fun is_older(d1 : (int * int * int), d2 : (int * int * int)) =
if #1 d1 < #2 d2 then
true
else if #2 d1 < #2 d2 then
true
else
#3 d1 < #3 d2
val test1 = is_older ((1,2,3),(2,3,4)) = true
我想将测试放在一个单独的文件中,然后包含定义并运行测试,就像我在上面尝试做的那样。为什么它不起作用?
【问题讨论】: