これは私の初めてのsmlです。 私はこの構文と間違っているものを理解していない: fun merge (l1 : int list , l2 : int list) : int list =
if ([] , l2) then l2
else if (l1 , []) then l1
else (x :: xs , y :: ys)
if x < y th
私は問題はそれだけでemaulateしようとして w.sml:21.6-22.82 Error: right-hand-side of clause doesn't agree with function result type [circularity]
expression: ('Z -> 'Y) -> 'Z -> 'Z
result type: ('Z -> 'Y) -> 'Z
in
私はMLを使い慣れていますので、私は理解するために最善を尽くしています。 alternate : 'a list -> 'a listというML関数を作成します。この関数は、同じ長さの2つのリストを入力として取り、1番目と2番目の入力リストから要素を交互に取った出力リストを生成します。 例 alternate ([1,3,5],[2,4,6]) = [1,2,3,4,5,6]
これが私の仕事で
私は最近smlを学んで、それをJavaと比較して使い方を混乱させました。だから私は、連続した値のペアをとり、それらを加えて新しいリストに合計を挿入するコードを作ってくれたと言われました。 元のリストの長さが奇数の場合、最初のn-1アイテムはペアごとに追加され、n-thアイテムは新しいリストの最後にそのままコピーされます。 だから私のコードは、これまでのところです: fun sumpairs x =