[Haskell-cafe] Re: Point-free style (Was: Things to avoid)
David Menendez
zednenem at psualum.com
Thu Feb 10 23:00:17 EST 2005
Sebastian Sylvan writes:
> Points free style is cool in a geeky sort of way, but not really all
> that useful when you're trying to write clear code that people can
> actually understand.
That's true of badly-written point-free code, certainly. However, anyone
who has spent time doing shell scripting in UNIX should be fairly
comfortable with function composition in principle.
Here's some code I wrote when I was playing around with an RDF
combinator library:
tsArcFwd s p = maybe [] id . Map.lookup (s,p) . store_sp
tsArcBwd p o = maybe [] id . Map.lookup (p,o) . store_po
I suppose a point-wise version of these would look like this:
tsArcFwd s p ts = maybe [] id (Map.lookup (s,p) (store_sp ts))
or this:
tsArcFwd s p ts =
case Map.lookup (s,p) (store_sp ts) of
Just xs -> xs
Nothing -> []
Here's another one:
addTriple (s,p,o) = addArc s p o . addNode s . addNode p . addNode o
I like to think it's pretty straightforward.
I suppose you could argue that these are examples of "semi-point-free"
style, or something. Certainly, I wouldn't want to rewrite tsArcFwd or
addTriple into fully point-free style.
--
David Menendez <zednenem at psualum.com> | "In this house, we obey the laws
<http://www.eyrie.org/~zednenem> | of thermodynamics!"
More information about the Haskell-Cafe
mailing list