takeWhile 测试嵌套列表的长度

takeWhile to test length of nested lists

我是 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]]