
Y Not – Adventures in Functional Programming (2012) - fredwu
http://www.confreaks.com/videos/1287-rubyconf2012-y-not-adventures-in-functional-programming
======
Peroni
Jeff Casimir summed up the situation well:

>If you want to honor @jimweirich, treat everyone like they're your best
friend, smart, and fascinating. That's how he lived.

[https://twitter.com/j3/status/436514758833876992](https://twitter.com/j3/status/436514758833876992)

------
StefanKarpinski
I saw the version of this talk that he gave at Strange Loop in 2012 using
Clojure instead of Ruby:

[https://thestrangeloop.com/sessions/y-not-adventures-in-
func...](https://thestrangeloop.com/sessions/y-not-adventures-in-functional-
programming)

It was hands down the best talk at the conference that year. RIP.

Edit: 2013 => 2012

~~~
statenjason
Was it the one from 2012? The video is available on infoq.

[http://www.infoq.com/presentations/Y-Combinator](http://www.infoq.com/presentations/Y-Combinator)

~~~
StefanKarpinski
Sorry, yes, it was 2012.

------
maxiepoo
I was very curious to see a post on the Ynot project
[http://ynot.cs.harvard.edu/](http://ynot.cs.harvard.edu/) on HN but this make
more sense.

------
igravious
I thought I'd never understand the Y-Combinator and unbelievably after that
talk I nearly kind of do. What a great speaker, you can see that the guy had
such a warm heart and spirit. My sympathies go out to anyone who knew him
personally.

------
fexl
I've taken to defining "@" as the Y combinator, so it looks kind of like a
"goto" label for looping, e.g.:

    
    
      (@\fact\n \n==n <= n 0 1 (* n (fact (- n 1))))
    

(The \n==n forces an eager evaluation, to avoid building a tower of deferred
operations with large n.)

The symbol "fact" is arbitrary, e.g. you could say this instead:

    
    
      (@\loop\n \n==n <= n 0 1 (* n (loop (- n 1))))
    

To define a name "fact" for that function, it's:

    
    
      \fact = (@\loop\n \n==n <= n 0 1 (* n (loop (- n 1))))

------
crashandburn4
It's a shame about Jim. I never knew him but he did a lot for the community.
RIP, he'll be missed.

------
pselbert
This is hands down my favorite talk that Jim ever gave. A great example of
live coding.

~~~
frou_dh
Very impressive. He seemed to know his numerous-stage demo by heart and made
effectively no mistakes.

------
e12e
Confreaks.com seems to be having some troubles, I'm guessing this is the same
talk:

Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
(uploaded by Confreaks):

[https://www.youtube.com/watch?v=FITJMJjASUs](https://www.youtube.com/watch?v=FITJMJjASUs)

------
wegi
I've just learned about the Y-Combinator in a lecture about functional
programming a few weeks ago. Very excited for the Video as soon, as the
website is up again.

------
LeicaLatte
Was introduced only recently to Jim Weirich. Fabulous computer engineer and
talker. RIP.

