任意のタイプのリストを取り、リストが実数のリストである場合にのみhead要素を返すサンプル関数を書きたいと思います。MLリストのタイプをチェックしてエラーマッサージを行う方法は?
これ以外の場合は、エラーメッセージ
が表示されます。 。 。オペレーターとオペランドはありません。 。 。
datatype typeR = Real of real
fun head(xs) =
case xs of
[] => raise List.Empty |
Real (x::_) => x:real ;
コードの説明を追加してください。 –
'(fn x:実数リスト=> hd x)'はどの型も*のリストを取るのではなく、実数のリストだけを取る。しかし、リストが実数*のリストである場合にのみhead要素を返し、実数のリストに従わない場合には型エラーを生成します。あるいは 'hd:real list - > real'。 –