1

解凍を再作成しようとしていますが、これは障害にぶつかる前にこれまでに得たものです。

fun myUnZip [] = []
  | myUnZip ((x1,x2)::tail) = (* x1 :: myUnZip tail and also do x2 :: tail *)

さて、私は 2 行目が不可能であることを知っているので、私が何をしようとしているのかを示すためにそこにコメントを入れました。
これを適切に行う方法について何か助けはありますか?

これはこの言語での 2 日目で、パターン マッチングを学ぼうとしています。私は現在、Elementary Standard MLという本を読んでいますが、リストからタプルを解凍するトピックを多少カバーしています。この本は私に解決策を提供してくれましたが、私はそれに少し圧倒され、他の誰かがそれに対して別の解決策を持っているか、本の解凍解決策についてコメントを提供してくれることを望んでいました.

4

1 に答える 1

5
fun unzip [] = ([], [])
  | unzip ((x,y)::xys)  =
      let val (xs,ys) = unzip xys in (x::xs,y::ys) end;
于 2013-04-08T03:04:32.547 に答える