そのため、入力リストの各要素に指定された述語に適用され、出力に含める必要があるかどうかをチェックする関数「フィルター」を作成しました。
let rec filer (pred: 'a -> bool) (l: 'a list) : 'a list =
begin match l with
| [] -> []
| hd :: rest -> if (pred hd) then hd :: (filter pred rest) else filter pred rest
end
今、フィルターに渡して 5 の倍数だけを保持できる述語を作成しています。
let multiples_of_five_pred: int -> bool =
filter (fun (x: int) -> x mod 5)
ここで何が欠けているのかわかりません...「この式には int 型がありますが、bool 型が期待されていました」という構文エラーが表示されます。