【发布时间】:2014-06-07 13:43:17
【问题描述】:
我试图了解 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)
然后呢?
【问题讨论】:
-
下一步是匹配
sep [3, 4, 5]和sep (x1:x2:xs) = ... -
好的,所以。 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]) In 2) sep [3, 4, 5] = let (is, ps) = ([], [5]) 在 (3:is, 4:ps) 中。知道如何继续吗?
标签: haskell equational-reasoning