В Haskell я могу сделать это для обработки бесконечного списка.
takeWhile (<1000) [1 ..]
Есть ли способ для этого в CoffeeScript?
StreamJS позволяет создавать «бесконечные» списки в JavaScript.
Использование его (грубо) coffeescript port :
# Stream.range() creates a list from 1...Infinity numbers = Stream.range().until (x) -> x > 1000
Не так, как встроенные примитивы, но их можно взломать, как и в большинстве других языков.По крайней мере, кто-то играет с ним в 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/.