Changes
no edit summary
Lambda Calculus forms the fundamentals of functional programming. If it can be described as a function,
it can be described in the lambda calculus and consequently written in Haskell
[https://linx.vtluug.org/selif/97s2gvcx.pdf Slides]
=== Alpha equivalence ===
=== Beta reduction ===
Meat of Lambda calculus.
=== Currying ===
Allows for nested functions. Functions manipulate each input individually
===Examples===
<pre>
<pre>
(ƛz.zz)(ƛy.yy)
(ƛ[z:=(ƛƛy.yy)].zz)(ƛy.yy)(ƛy.yy)(ƛy.yy) 1
</pre>
<pre>
Currying example:
(ƛabc.cba)zz(ƛwv.w)
(ƛa.(ƛb.(ƛc.cba)))(z)z(ƛw.(ƛv.w))) The first function only applies the first z
(ƛb.(ƛc.cbz))z(ƛw.(ƛv.w)) Applies from the outer parenthesis in
(ƛc.czz)(ƛw.(ƛv.w)) So c is applied last
(ƛw.(ƛv.w))zz
(ƛv.z)z
z
</pre>
<pre>
<pre>
(ƛx.x)(ƛy.yy)(ƛz.zq) (ƛx.x) is the identity
(ƛy.yy)(ƛz.zq)
(ƛz.zq)(ƛz.zq)
qq
</pre>
[[Category:VTLUUG:Meetings]]
[[Category:2016]]