私はSMLで出始めている、と私はので、私は(私はまともなSML/NJデバッガを見つけることができませんが、それは別の問題だ)、それはやっているか理解し、いくつかのコードを変更しようとしています。SMLのcase文の中でどのように印刷しますか?
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 Error: operator is not a function [tycon mismatch] operator: unit in expression: (print "returning integer") (integer,theta)
私はちょうど戻り値として扱われるべきであるだけで、最後のその一連の文を実行する方法を理解していないと思います。何かアドバイス?
また、私自身のデータ型の値をどのように出力するのですか? SMLはprint()にデータ型の値を渡そうとしたときに気に入らなかったので、おそらくそれぞれのデータ型に対して新しい印刷関数を作成する必要がありました。
より高い優先度を意味していませんか? – Shuzheng
@nlykkei:いいえ、優先度は低いです。それは最も外側の構造であり、低い優先順位を有するセミコロンを残し、高い優先順位を有するので、case式は、最初にグループ化されます。 – newacct