在CoffeeScript中处理无限列表

时间:2012-01-24 18:19:47

标签: haskell functional-programming coffeescript

在Haskell中,我可以这样做来处理无限列表。

takeWhile (<1000) [1 ..]

CoffeeScript中有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:7)

StreamJS可以在javascript中创建“无限”列表。

使用它(粗略)coffeescript port

# Stream.range() creates a list from 1...Infinity
numbers = Stream.range().until (x) -> x > 1000

答案 1 :(得分:3)

不像原始版本那样构建,但它们可以像大多数其他语言一样被黑客入侵。至少有人在CoffeeScript中玩弄它;见https://github.com/swannodette/fun.coffee/blob/master/src/fun.coffee。对于看似不那么“入侵”的解决方案,您可能希望阅读CPS并支持正确的尾调用,请参阅http://blog.mozilla.com/dherman/2011/01/30/proper-tail-calls-in-harmony/