A Short Introduction to the Lambda Calculus (2004) [pdf]
cs.bham.ac.uk
cs.bham.ac.uk
Another excellent work from that same time is The Implementation of Functional Programming Languages by Simon Peyton Jones which is available online for free:
http://research.microsoft.com/en-us/um/people/simonpj/papers...
[Edit: I know this is an old work - but I'm very fond of it!]
https://usi-pl.github.io/lc/sp-2015/doc/Bird_Wadler.%20Intro...
http://worrydream.com/AlligatorEggs/
With some of my older family members and a couple of mildly intoxicated friends who vaguely understood the theory. It's well worth playing with to learn the lambda calculus.
Relational algebra is an algebra for example.
But as it were, LC cannot be expressed as a universal algebra. Not quite. The lambda terms introduce local binding which throws off an algebraic representation. The best you can do is have a (sorted) representation which includes free variables and then have a quotient of that algebra be LC. Even that doesn't quite work, though, since `x` is not a valid LC term.
Doesn't rho for renaming in relational algebra also have local binding?
It's good to know the reasons are historical though.
Of course the real answer is probably history, but it's much more interesting to say that you can simply find connections to calculus if you look hard enough...
Then, in that case, there is only one argument (const 10) to pass to the 'fx' lambda and I guess you end up with a partial or something?
Or should the 'y' lambda and the constant 5 be considered the 2 parameters passed to the 'fx' lambda? In which case I guess the answer comes to be const 20?
So you managed to do exercise 8.7 ? I wonder if there is an answer shorter than 22 symbols...
Nice instance of lambda golfing!
Also, I find questions like 8.7 to be really uninteresting - it seems like busywork.