[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: can s-exprs represent a graph without eval?
Guy Steele wrote:
> Sometimes an circular structure can be used to "advantage".
> Consider this bit of code:
>
> (mapcar #'+ x '#1=(1 -1 . #1#)) [corrected]
>
> If x is (1 4 7 10), the result will be (2 3 8 9).
>
> Does this puzzle you? You get 1 point.
> Does this delight you? You get 5 points.
> Does this nauseate you? You get 10 points.
I can see nauseating aspects, but related more to cryptic syntax than
anything else. Should the following Haskell also be considered nauseating,
and if so, why?
x = [1, 4, 7, 10]
altlist = 1 : -1 : altlist
zipWith (+) x altlist
=>
[2,3,8,9]
Not sure if the infinite list can be defined inline, but if not, it's
probably a good thing which reduces the nausea factor.
My delight with this version is only moderated by the typing rules, which
require that a different function be used with a different number of input
lists (map vs. zipWith).
Anton