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

Reply via email to