Changes

Jump to: navigation, search

VTLUUG:2016-03-24

465 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 ===
=== Beta reduction ===
Meat of Lambda calculus.
 
=== Currying ===
Allows for nested functions. Functions manipulate each input individually
===Examples===
<pre>
Currying example: (ƛx.x)2 (ƛabc.cba)zz(ƛwv.w)(ƛ[x:=2x2]) (ƛa.(ƛb.(ƛc.cba)))(z)z(ƛw.(ƛv.w))) x is bound to 2 The first function2 2 (ƛa.(ƛb.zba)z(ƛw.(ƛv.w) Only applies the first z</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>
=== Currying ===(ƛ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