1
SMLを学びながら、私は次の質問を思いつきました。この例を見てください:SML:ブール関数
fun check (elem,myList) =
let
fun check1 elem [] = fn (x,_,_) => elem > x
fun check2 elem [] = fn (_,y,_) => elem < y
in
if check1 andalso check2 then 1 else 0
end
probenはここでは動作しません。どうして?私が理解する限り、check1とcheck2はBOOL値を返すべきです。私はローカル変数を宣言しようとしましたが、これは問題を解決するのに役立たなかった。
関数'check 'は、check1とcheck2の論理ANDの結果に応じて、0または1だけを返します。この関数は、 の check1 endでのみコンパイルできます。しかし、これは私が必要なものではありません。 –
私は問題を理解しました。この機能の論理は、私が考えていたものとはまったく異なっています。 –