【发布时间】:2012-01-23 05:00:21
【问题描述】:
我需要在 SML 中编写一个非常简单的函数。它应该检查值“elem”是否大于列表“L”中字段“f1”的任何值。列表 'L' 包含 3 个字段 - 'f1'、'f2'、'f3'。如果语句“elem>f1”对于列表“L”的任何成员为真,则该函数应返回 1。否则,该函数应返回 0。例如:
L =
f1 f2 f3
1 4 6
2 1 2
3 4 8
8 5 9
elem = 3
fun check(L: myList, elem: int): int =
let
val counter = ref 0
val counter_end = length L
in
while (!counter <= counter_end) do
let val f1 = List.nth(L,counter)
in
if elem > f1 then 1 else 0
end
counter := !counter + 1
end
我不知道如何从列表“L”中获取字段“f1”。任何想法都非常感谢。
【问题讨论】:
-
您使用 while 循环的任何特殊原因?这在 SML 中通常是一个糟糕的想法。
-
好吧,我只是 SML 的新手,因此我不知道如何解决我的问题。但如果您知道其他解决方案,请在此处描述。谢谢。
-
函数应该返回什么?如果列表中没有成员拥有
elem > f1,会发生什么? -
如果语句 'elem>f1' 对于 'L' 中的任何条目为真,则函数应返回 1。否则应返回 0。
标签: list while-loop sml