Hacker News new | past | comments | ask | show | jobs | submit login
The Y Combinator (mvanier.livejournal.com)
86 points by ecopoesis 53 days ago | hide | past | web | favorite | 21 comments

This remind of the best material in my opinion to understand the Y combinator, "(Y Y) Works! by Matthias Felleisen and Dan Friedman"[1]. Its very light read IMO, and highly recommended.

[1] https://xivilization.net/~marek/binaries/Y.pdf

Unfortunately, the Y Combinator does not work for Actor programs, which can implement non-deterministic procedures that cannot be implemented in the non-deterministic lambda calculus. For further information, see the following:


@ProfHewitt, I have to say I think you did a lot of people (including myself) a disservice by polluting Wikipedia with promotions of your original research on the Actor model of computation.

Modelling concurrent computation is not the place for an intellectual "land grab"; if your work has value, I think it's time to let other people promote it for you.

Personal attacks have no place on Hacker News!

Please confine your remarks to substantive issues.

Hacker News is not a popularity contest.

BTW. Wikipedia suffers many of the same bugs as other Internet Social Media. I started the Wikipedia article on the Actor Model. Unfortunately, the article is now extremely obsolete because of Wikipedia censorship. See the following for current information:


PS. It is invalid to criticize a scientist for publishing original research. Instead, publishing original research is a primary activity of scientists.

This gets posted at least once a year now :D https://news.ycombinator.com/from?site=mvanier.livejournal.c...

Somewhat tangential: I just clicked the "past" link assuming it would show similar results to the page you linked and man was I ever wrong! It doesn't search for the exact phrase, so many unrelated stories flood the results. But this does mean that low-hanging fruit are within reach: all our tireless admins would have to do is add double-quotation marks around the search query! :)

This particular title matches a lot of stories for obvious reasons. I'm not sure exact-querying would be better in general.

Mike taught the intro CS course at Caltech using SICP (at least when I took it). It’s cool to see his name pop up here and there still.

Does anyone happen to know where is there an article on the (non)existence of the Y combinator typed using recursive parameterized types?

I really didn't expect this sort of Y Combinator, especially on this page. Still very interesting read, because I didn't know it before and at the same time it shed a bit of light on naming of this company.

But... Y?

because f Y f.

f (Y f), surely ….

To quote the article:

> (I'm using a function notation without parentheses here, so factorial 3 is the same as what is usually written as factorial(3). Humor me.)

Sure, I am fine with that (else I would have proposed the abysmal `f(Y(f))`); but `f Y f` suffers from the ambiguity of `f (Y f)` versus `(f Y) f`, and, at least from my familiarity with Haskell, I automatically parse it as the latter (which I am guessing was not what proc0 intended).

I just thought it would be funny to quote the article there, I'm not too hung up on which representation is used.

>I think we can similarly use knowledge of the Y combinator as a dividing line between programmers who are "functionally literate" (i.e. have a reasonably deep knowledge of functional programming) and those who aren't. There are other topics that could serve just as well as Y (notably monads), but Y will do nicely. So if you aspire to have the True Lambda-Nature, read on.

Unfortunately, the article leaves out types, which are an even more important topic for a "literate" programmer.

The recursive definition of Y can easily be adapted to be strongly typed. However, there is no strongly typed Y combinator without self-applicable recursively defined types. Consequently, the Y combinator is not something that needs to concern a competent programmer, who will of course be using strong types ;-)

> Consequently, the Y combinator is not something that needs to concern a competent programmer, who will of course be using strong types ;-)

A competent programmer selects their tools based on multiple metrics, which can include meta metrics like popularity (size of hiring pool) as well as external constraints such as a predetermined platform or interoperability with an existing system.

Competent programmers compensate as best they can when using weaker tool chains, such as those lacking strong types.

I don't disagree.

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