Changes

Jump to: navigation, search

VTLUUG:2016-03-24

712 bytes added, 07:18, 3 January 2018
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 ===
Meat of Lambda calculus.
Ex:=== Currying ===Allows for nested functions. Functions manipulate each input individually ===Examples===
<pre>
(ƛx.x)2(ƛ[x:=2x2]) x is bound to 2 2</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> (ƛx.ƛy.xyy)(ƛa.a)b(ƛy.(ƛa.a)yy)(b)(ƛa.a)bb bb</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]]
Anonymous user

Navigation menu