任意のタイプのリストを取り、リストが実数のリストである場合にのみhead要素を返すサンプル関数を書きたいと思います。 これ以外の場合は、エラーメッセージ が表示されます。 。 。オペレーターとオペランドはありません。 。 。 datatype typeR = Real of real
fun head(xs) =
case xs of
[] => raise List.Em
これらの戻り値の型違いは何ですか? val fn1 : int −> (int −> (int −> int))
val fn2: (int −> int) −> (int −> int)
これはタイプ int -> int -> int meaning int -> (int -> int)
の関数を作成し、その右にありますか?彼らはブラケットなしで同じ意味を持っています!
Posix.Process.execpを使って実行したコマンドの出力をキャプチャしようとしています。 stackoverflowで見つかったCコードを移植し、1回の実行で出力をキャプチャできますが、2回目の実行では出力を取得できません。 は、ここに私の機能です: (* Runs a command c (command and argument list) using Posix.Process.
sml/njのbufをWord8VectorSlice.sliceに変換するにはどうすればよいですか?例えば、 val msg = "hello\n";
val buf = Byte.stringToBytes msg; (* how to convert to Word8VectorSlice.slice ?*)
私は、次のqtreeデータ型があります。 datatype 'a qtree = Leaf of 'a
| Node of 'a branches
and 'a branches = Empty
| Branch of 'a qtree * 'a branches
例えば次のようにツリーが定義されています。ここでは val tr1 =
Node(Branch(Leaf(2),
私はSML(Javaの世界から来ている)と私が理解しているところから比較的新しいです 構造体はJavaクラスと似ています&署名はJavaインタフェースです。 SML構造のすべてが不変です。値を設定できる変数を持つ可能性はありますか? functor Make(M : sig
type data
val callback : _
end) = struc
私はMLを使い慣れていますので、私は理解するために最善を尽くしています。 alternate : 'a list -> 'a listというML関数を作成します。この関数は、同じ長さの2つのリストを入力として取り、1番目と2番目の入力リストから要素を交互に取った出力リストを生成します。 例 alternate ([1,3,5],[2,4,6]) = [1,2,3,4,5,6]
これが私の仕事で