SMLのパターンマッチングについては疑問があります。 「Programming Language Pragmatics(Second Edition)」の本では、関数内でパターンマッチングを使用するとSMLで同じ変数を複数回表示することはできません。パターンマッチングは、関数が定義されたパターンで見つかるかどうかをチェックし、変数がお互いに関連しているかどうかをチェックするためのものです。しかし、それは私を混乱させました:なぜ、このようなものは実装できませんでしたか?同じ変数とのパターン一致
fun Eq nil = false
| Eq (e) = false
| Eq x::x::resto = true //Error
| Eq x::y::resto = false
コードチェックのこのスニペットリストの最初の2つの要素が等しい場合: ここ例です。 なぜコードの3行目が間違っているのですか?ありがとうございました。
これは実装できますが、SMLではありません(私が気づいていない理由で)。 Erlangのように、あなたが望むものを許す言語があります。 https://gist.github.com/igstan/ac1d10e6d1b575278fd6e2a3b65ce437 –