3

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

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

4

1 回答 1

5

您可以撰写length(< 3)实现您想要的:

takeWhile ((< 3) . length) [[1],[1,2],[1..3],[1..4]]
于 2017-03-09T03:53:56.790 回答