繁体   English   中英

Haskell如何评估撤消列表插入的功能?

[英]How does Haskell evaluate this function which undoes list intercalation?

我试图了解Haskell如何评估sep [1, 2, 3, 4, 5]以获得([1, 3], [2, 4, 5]) ,其中:

sep [ ] = ([ ], [ ])
sep [x] = ([ ], [x])
sep (x1:x2:xs) = let (is, ps) = sep xs in (x1:is, x2:ps)

我开始是这样的:

sep [1, 2, 3, 4, 5] = let (is, ps) = sep [3, 4, 5] in (1:is, 2:ps)

但是之后?

终于我明白了。

1) sep [1, 2, 3, 4, 5] = let (is, ps) = sep [3, 4, 5] in (1:is, 2:ps)

2) sep [3, 4, 5] = let (is, ps) = sep [5] in (3:is, 4:ps)

3) sep [5] = ([], [5])

在2)中sep [3, 4, 5] = let (is, ps) = ([], [5]) in (3:is, 4:ps) = ([3], [4, 5])

在1)中sep [1, 2, 3, 4, 5] = let (is, ps) = ([3], [4, 5]) in (1:is, 2:ps) = ([1, 3], [2, 4, 5])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM