Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It goes back to the mathematical roots of programming. Turns out that if your language consisted entirely of unnamed lambda functions, it would still be turing-complete because you could use one of several types of combinators to implement everything else. The Y combinator and a few other similar ones implement recursion, which is quite a feat for such a limited language.

Mathematical terminology exists only to add precision to human languages, which are notoriously vague. It can be overdone, of course. Polyvariadic is a bit silly, it just means that the combinator has been generalized so that it works on functions which have more than one argument (literally "many-variable-having"); the original Lambda Calculus pared away even that to leave just functions of one argument.

That hypothetical language, btw, is called the Lambda Calculus. It was formalized and studied by Alonzo Church, and entered software engineering most directly in the form of Lisp. Most of the research these days probably happens in Haskell and similar languages.



[deleted]


Was the parent comment edited since you posted? It seems perfectly civil to me (in contrast to its parent, actually).


alayne may have hit the wrong reply button?


seems likely, at this point




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

Search: