auto-curried, data-last functions
graingert opened this issue · comments
Like lodash/fp but lazy, or https://github.com/ReactiveX/IxJS
Could you elaborate on what you mean by "auto-curried"? Is this essentially a duplicate of #24?
@dtao no not sure what that's about. I'm talking:
var result = Lazy(people)
.pluck('lastName')
.filter(function(name) { return name.startsWith('Smith'); })
.take(5);
becomes:
var result = l.flow(
l.pluck('lastName'),
l.filter(function(name) { return name.startsWith('Smith'); }),
l.take(5),
)(people)
Ah, gotcha. Yes, someone asked about something similar before... unfortunately I can't seem to find it.
Anyway, I think something like this exists already. It is called apply()
:
var result = Lazy([])
.pluck('lastName'),
.filter(function(name) { return name.startsWith('Smith'); }),
.take(5)
.apply(people);
Granted, this interface is very odd (passing in an empty array initially—weird); and the implementation is very hacky. I'm not pleased with it at all. But it does exist.
Probably I will consider changing how this works and introducing something more like what you've suggested in a future version.