As a programmer I have been diving into functional programming and am therefore interested about the math behind all of the languages.
I had a small course of lambda calculus at university, but recently wanted to fresh up my knowledge about the matter. I found some great but fairly old resources on the web.
When it comes to numbers however my course and the document I was reading did not align.
Course:
0 = Lx.x
n + 1 = Cons Fls n [with Cons = Lz.z M N and false = Lxy.y]
Document:
0 = Lsz.z (equals Fls)
1 = Lsz.s(z)
2 = Lsz.s(s(z))
etc...
At first sight this looks like a different approach, is there something I am missing? Or is it possible to approach numbers in different ways and you just determine your functions and expressions based on what your definition of the number is?