Haskell's lambdas are different from Scheme's in a variety of ways. If you do not mind those kinds of differences, then you should not mind J's differences either.
Here's one example of a J lambda syntax: 3 :0 (x y)=. y x+y ) This differs from Haskell and Scheme lambda syntax in obvious ways, but it's viable. Thanks, -- Raul On Mon, Feb 2, 2015 at 4:39 AM, alexgian <[email protected]> wrote: >> On a related note, lambda syntax is not really simple. >> Consider: >> ((lambda (x y) (+ x y)) 2 3) > > Well, that's *one* form of lambda syntax, viz. the Scheme variant > > In Haskell you'd write > \x y -> x+y > > Hardly rocket science. But I think the point is that that however > awkwardly you may choose to codify it, lambda is brilliant in its > simplicity and accessibility of understanding. Static scoping is a > no-brainer for managing complexity. > > I agree that the inability of abstracting J more than two levels (as > already mentioned) is a serious PITA, and probably the most inexplicably > klutzy piece of work in an otherwise so elegant system... I mean, needing > to combine tacits inside explicits, and gawdknows what other work-arounds! > Really? We might have got used to it, but I doubt that many in the real > world would. But, of course, I could be wrong.... > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
