我是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)
?还是可以通过直接测试长度来做到这一点?
您可以撰写length
和(< 3)
来实现您想要的东西:
takeWhile ((< 3) . length) [[1],[1,2],[1..3],[1..4]]