1

我正在尝试重新创建解压缩,这就是我到目前为止所得到的,在遇到障碍之前。

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

现在,我知道第二行是不可能的,所以这就是为什么我把评论放在那里以显示我打算做什么。
关于我应该如何正确执行此操作的任何帮助?

这是我学习这门语言的第二天,我只是想学习模式匹配。我目前正在阅读 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 回答