SMLで非常に簡単な関数を書く必要があります。値 'elem'がリスト 'L'のフィールド 'f1'のいずれの値よりも大きいかどうかをチェックする必要があります。リスト 'L'には、 'f1'、 'f2'、 'f3'の3つのフィールドがあります。関数 'elem> f1'がリスト 'L'のメンバーのいずれかに対して真である場合、関数は1を返すべきです。それ以外の場合、この関数は例えば0を返す必要があります:リストのWHILEループ
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
まあ、私はSMLの初心者なので、私の問題を解決する方法は他にありません。しかし、あなたが他の解決策を知っているなら、ここでそれを説明してください。どうも。 –
関数は何を返すべきですか?リストのメンバーが 'elem> f1'を持たない場合にはどうなるでしょうか? – jalf