Difference between revisions of "VTLUUG:2016-03-24"

From the Linux and Unix Users Group at Virginia Teck Wiki
Jump to: navigation, search
imported>Echarlie
(Talks)
imported>Pew
 
(12 intermediate revisions by one other user not shown)
Line 2: Line 2:
  
 
== Date, Time, and Location ==
 
== Date, Time, and Location ==
* Thursday, 25 February
+
* Thursday, 24 March
 
* 8:30pm - 10:30pm
 
* 8:30pm - 10:30pm
 
* 1040 [[gp:Torgersen Hall|Torgersen Hall]]
 
* 1040 [[gp:Torgersen Hall|Torgersen Hall]]
Line 16: Line 16:
 
*Officer Elections
 
*Officer Elections
 
** This is a consequence of new club registration policies.
 
** This is a consequence of new club registration policies.
 +
 +
=== Results ===
 +
 +
* President
 +
** Jacob Melton
 +
* VP of '''not''' IT
 +
** Marcus Wanners
 +
* Secretary/Treasurer
 +
** John Volk
  
 
== Talks ==
 
== Talks ==
* [[User:acthet|acthet]] is giving the talk: '''Lambda Calculus for Babies. Retarded Babies.'''
+
* [[User:ackthet|ackthet]] is giving the talk: '''Lambda Calculus for Babies. Retarded Babies.'''
 
** First in ackthet's 10-part talk on Xmonad, starting from the basics of haskell
 
** First in ackthet's 10-part talk on Xmonad, starting from the basics of haskell
  
Line 27: Line 36:
 
* New Website?
 
* New Website?
 
* [[Infrastructure 2016]]
 
* [[Infrastructure 2016]]
 +
 +
== Lambda Calculus for Babies: Retarded Babies ==
 +
 +
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 ===
 +
* Variable name doesn't matter
 +
 +
=== Beta reduction ===
 +
Meat of Lambda calculus.
 +
 +
=== Currying ===
 +
Allows for nested functions. Functions manipulate each input individually
 +
 +
===Examples===
 +
 +
<pre>
 +
 +
(ƛx.x)2
 +
(ƛ[x:=2])        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:VTLUUG:Meetings]]
 
[[Category:2016]]
 
[[Category:2016]]

Latest revision as of 07:18, 3 January 2018

Our seventh meeting of the 2016 Spring semester, and Officer Elections

Date, Time, and Location

Announcements

Curriculum du jour

  • Officer Elections
    • This is a consequence of new club registration policies.

Results

  • President
    • Jacob Melton
  • VP of not IT
    • Marcus Wanners
  • Secretary/Treasurer
    • John Volk

Talks

  • ackthet is giving the talk: Lambda Calculus for Babies. Retarded Babies.
    • First in ackthet's 10-part talk on Xmonad, starting from the basics of haskell

Hacking

Lambda Calculus for Babies: Retarded Babies

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

Slides

Alpha equivalence

  • Variable name doesn't matter

Beta reduction

Meat of Lambda calculus.

Currying

Allows for nested functions. Functions manipulate each input individually

Examples

 
(ƛx.x)2
(ƛ[x:=2])        x is bound to 2
 2
                    

(ƛz.zz)(ƛy.yy)
(ƛ[z:=(ƛy.yy)].zz)
(ƛy.yy)(ƛy.yy)
(ƛy.yy)
 1


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


(ƛx.ƛy.xyy)(ƛa.a)b
(ƛy.(ƛa.a)yy)(b)
(ƛa.a)bb
 bb
(ƛx.x)(ƛy.yy)(ƛz.zq)    (ƛx.x) is the identity
(ƛy.yy)(ƛz.zq)
(ƛz.zq)(ƛz.zq)
 qq