Hacker News new | past | comments | ask | show | jobs | submit login
Ruby 1.9 and Lambda Calculus (53cr.com)
18 points by nickb on Oct 5, 2008 | hide | past | favorite | 11 comments



> The “->” is supposed to be read as a lambda (λ), since relying on unicode characters in code is generally bad news.

Interesting. Why? Personally I would radically prefer the λ and any competent editor could make it a single keystroke if it doesn't already.

I really wish we did use more unicode in our source code. "≠", for example, is much clearer to me than "!=".


Qi uses /. as lambda; that's pretty close. I like Haskell's decisions as well.

There's also the literate programming route: enter the code as ASCII, then run it through a processor to generate a prettier document for reading.


For some interesting examples of integrated Unicode, have a look at Project Fortress, Guy L. Steele's Fortran-killer.


Wouldn't unicode in source code break a lot of UNIX utilities or render them useless? Just askin'


Haskell uses \, which isn't too far from λ. it also reads better than -> imo


    ->(f){f.(3)}.(->(x){x+2})
vs

    (lambda f: f(3))(lambda x: x+2)
the first one(ruby) requires me to press the shift key 6 times, the python version only 2, but on the other hand i have to write "lambda" twice. I say they are even :)


Except the Ruby version won't run away and cry if you try to do anything even slightly more complex in it. Also you can still type "lambda" if you really want to.


ok, how about this one:

    ((lambda (f) (f 3))(lambda (x) (+ x 2)))


All the visual appeal of oatmeal with fingernail clippings mixed in.

Actually, I do prefer ASCII for anything that isn't already a convention in math -- parens to group expressions, curly braces for sets, etc.


Haven't read the article yet but I find the python version much more readable.


Unfortunately, the python one is much less functional. Complain to your local python guru about the lack of real lambdas, today!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: