logoalt Hacker News

general_revealyesterday at 2:05 PM4 repliesview on HN

Can we solve for x and y? All I see is algebra here, is my intuition wrong?


Replies

travisjungrothyesterday at 5:07 PM

More directly than the other comments: No you can’t solve for x and y here and yes your intuition is wrong.

These are functions. I don’t know your level of knowledge in math or programming and what that would mean to you. Here’s an example.

double(x) -> x*2

So, double(3) = 6. You can’t solve for x because x doesn't have a value. It’s a placeholder for whatever you put in.

These combinators are functions that take other functions and return them unmodified. “Unmodified” is a little misleading because it can do things like drop inputs.

show 1 reply
seanhunteryesterday at 3:02 PM

The intuition here is that combinators are higher order functions which take functions and combine them together in various ways. So for a simple example "fix" is a combinator in regular maths where

Fix f = {f(x): f(x) = x for all x in the domain of f}

So if f is a function or a group action or whatever, the fixed-point set of f is all points x in the domain of f such that f(x)=x. ie the points which are unchanged by x. So if f is a reflection, the points which sit on the axis of reflection.

The fixed-point combinator is of particular relevance to this site because it's often called the y combinator.

show 1 reply
Zhylyesterday at 2:13 PM

It's more like a recipe (for functions).

The first example, I, is an identity function. It takes y and returns y.

The second, K, is a constant which takes X and y and returns x.

This gets more complicated as you go along. The idea is that you get rid of a lot of the syntax for composition and have it all be implicit by what you put next to each other (given APL programs are usually one long line of a bunch of different symbols all representing functions).

skydhashyesterday at 3:08 PM

Combinators can be a bit sill for values. The usefulness come when you use them as a meta language for functions.