[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Possible Lua enhancements 2: Piping
- From: Mark Hamburg <mark@...>
- Date: Wed, 17 Dec 2008 18:42:29 -0800
On Dec 17, 2008, at 2:39 PM, Ralph Hempel wrote:
Mark Hamburg wrote:
The following ideas started with studying LINQ, but LINQ is pretty
clearly just a piping model for data together with some useful
syntax in C# and VB and ways to delay evaluation long enough to
allow for translation into SQL or other mechanisms. I'm not going
to address how to get to those latter enhancements but pipes are
good as any Unix programmer will tell you and as Diego Nehab
demonstrated in LTN 12 (http://lua-users.org/wiki/FiltersSourcesAndSinks
). So, here are two proposals for how to add pipes to Lua's syntax:
Is this significantly different from the coroutine example in
the PiL book <http://www.lua.org/pil/9.2.html> that goes
something like:
consumer( filter ( producer() ) )
Don't get me wrong, I like pipes, I'm just not seeing how
the piping you're proposing is anything more than syntactic
sugar for the above code...
It is just syntactic sugar. The point is that without the sugar, the
pipe idiom becomes fairly difficult to follow fairly quickly. That's
also why I don't particularly like the Haskell inspired approach (my
option 2) which would basically turn the above into:
consumer $ filter $ producer()
On the other hand, I think there is clarity to be gained from:
producer() >> filter >> consumer
You can read the code left-to-right instead of inside-out and
understand what it does.
Mark