【发布时间】:2019-08-22 21:24:37
【问题描述】:
我在 SML 中创建了一个函数,它遍历列表的起始元素,如果第一个、第二个、第三个元素相同,则删除这些元素并更新变量的值。我写的是:
let
val min=7
in
fun seen2 (set:int list) =
if hd set=hd(tl set) then
min=min-1
seen2(tl set)
else
tl set
end
这个函数的输出是一个列表,其中删除了我提到的元素。例如,如果它把这个列表作为输入->[1,1,1,1,2,3,4] 并且 min 是从之前设置为 7,我希望它给出 [2,3,4] 作为结果,min 更新为 4。应该存储 min 变量,因为可能会再次调用此函数,并且 min 可能会进一步更新。此代码给我语法错误。最后必须打印最后的最小值,所以我认为这必须是一个全局值(?)。我怎么能做到这一点?
【问题讨论】:
标签: functional-programming sml smlnj