https://github.com/Gozala/reducers
Tip revision: 291e0255e28ba6c015b69cc8556a287f9c873b9e authored by Irakli Gozalishvili on 25 October 2012, 06:36:51 UTC
Version 0.1.4
Version 0.1.4
Tip revision: 291e025
take-while.js
"use strict";
var accumulated = require("./accumulated")
var transform = require("./transform")
function takeWhile(source, predicate) {
/**
Returns a sequence of successive items from `source` while `predicate(item)`
returns `true`. `predicate` must be free of side-effects.
## Example
var digits = takeWhile([ 2, 7, 10, 23 ], function(value) {
return value < 10
})
print(digits) // => <stream 2 7 />
**/
return transform(source, function(next, value, state) {
return predicate(value) ? next(value, state) :
next(accumulated(), state)
})
}
module.exports = takeWhile