takeWhile测试嵌套列表的长度

时间:2017-03-09 03:50:09

标签: list haskell stream pointfree tacit-programming

我是Haskell的新手,并尝试执行以下操作:

takeWhile (length < 3) [[1],[1,2],[1..3],[1..4]]。但是这给出了一个错误,我认为是因为takeWhile会测试length < 3 [1]而不是length [1] < 3,这是可行的。我是否要将[[1],[1,2],[1..3],[1..4]]放入长度列表中,然后对该长度列表执行takeWhile (< 3)?或者有没有办法通过直接测试长度来做到这一点?

1 个答案:

答案 0 :(得分:5)

您可以撰写length(< 3)来实现您的目标:

takeWhile ((< 3) . length) [[1],[1,2],[1..3],[1..4]]