私は SML を使い始めたばかりで、何をしているのかを理解するためにいくつかのコードを変更しようとしています (適切な SML/NJ デバッガーが見つかりませんが、それは別の質問です)。
fun type_check e theta env non_gens =
case e of
constant_int _ => (integer,theta)
|
constant_bool _ => (boolean,theta)
| ...
これは、constant_int が既に宣言されているデータ型の一部であるなどの有効なコードであると仮定します。「"整数" を返す」という print ステートメントをケースに追加するにはどうすればよいですか? 私は試した:
...
constant_int _ => (print "returning integer") (integer,theta)
...
しかし、私は得る:
stdIn:167.22-167.65 エラー: 演算子は関数ではありません [タイコンの不一致] 演算子: 単位 式で: (print "returning integer") (integer,theta)
一連のステートメントを実行する方法を理解していないだけだと思います。最後のステートメントのみを戻り値として扱う必要があります。何かアドバイス?
また、自分のデータ型の値をどのように出力しますか? データ型の値を print() に渡そうとしたときに SML が気に入らなかったので、データ型ごとに新しい印刷関数を作成する必要があると思いますが、正しいですか?