В Haskell я могу сделать это для обработки бесконечного списка.Обработка бесконечных списков в CoffeeScript
takeWhile (<1000) [1 ..]
Есть ли способ этого в CoffeeScript?
В Haskell я могу сделать это для обработки бесконечного списка.Обработка бесконечных списков в CoffeeScript
takeWhile (<1000) [1 ..]
Есть ли способ этого в CoffeeScript?
StreamJS позволяет создавать «бесконечные» списки в javascript.
Используя это (грубая) coffeescript port:
# Stream.range() creates a list from 1...Infinity
numbers = Stream.range().until (x) -> x > 1000
Ссылка на SICP [раздел по потокам] (http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5), упомянутый на сайте streamJS. – hugomg
Не так, как в примитивах, но они могут быть взломаны, как на большинстве других языков. По крайней мере, кто-то играет с ним в 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/.
Обратите внимание, что ', 2' является излишним в этом коде. –