【发布时间】:2015-10-04 00:22:24
【问题描述】:
我有一个无限列表,我将它连接到一个字符串。
foldl1 (++) $ map show [1..]
我想要的是当这个字符串的长度达到十个或更多字符时将其切断。
但是,takeWhile 对列表的各个元素进行操作。当列表超过十个字符时,我可以使用一个函数来切断列表吗?
在这种情况下,我希望函数输出“123456789”,忽略 10,因为越过会导致长度过大。
编辑:这是我的实际代码。这就是我所描述的。
succProd x = last. takeWhile ((<10).length) . scanl1 (++) $ map (show.(x*)) [1..]
谢谢!
【问题讨论】:
-
无限列表实际上比[1..]复杂一点。这仅仅是一个例子。 :)
-
编辑您的问题并添加真实示例。
-
当然。我认为这更清楚,我已经得到了我需要的答案,但是好吧。
-
@DanMaheshwari 你能改写你的问题吗?它没有说明您希望在 构建 列表时执行此操作 - 我以为您只是在这里谈论
take一段时间。
标签: haskell