我是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)
?或者有没有办法通过直接测试长度来做到这一点?
答案 0 :(得分:5)
您可以撰写length
和(< 3)
来实现您的目标:
takeWhile ((< 3) . length) [[1],[1,2],[1..3],[1..4]]