我需要在SML中編寫一個非常簡單的函數。它應檢查值'elem'是否大於列表'L'中字段'f1'的任何值。列表'L'包含3個字段 - 'f1','f2','f3'。如果語句'elem> f1'對於列表'L'的任何成員都是真的,函數應該返回1。否則,函數應返回0.例如:WHILE循環爲LIST
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中通常是一個糟糕的主意。 – jalf 2011-12-18 21:35:19
嗯,我只是SML的新手,所以我沒有其他想法來解決我的問題。但是,如果您知道其他解決方案,請在此處描述。謝謝。 – 2011-12-18 21:44:15
該函數應該返回什麼?如果沒有名單上的成員有'elem> f1',會發生什麼? – jalf 2011-12-18 21:53:33