Difference between revisions of "VTLUUG:2016-03-24"
imported>Echarlie (→Curriculum du jour) |
imported>Pew |
||
| (13 intermediate revisions by one other user not shown) | |||
| Line 2: | Line 2: | ||
== Date, Time, and Location == | == Date, Time, and Location == | ||
| − | * Thursday, | + | * 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: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 | ||
== Hacking == | == Hacking == | ||
| Line 25: | 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
Contents
Date, Time, and Location
- Thursday, 24 March
- 8:30pm - 10:30pm
- 1040 Torgersen Hall
Announcements
- #VTLUUG: "No Rules, Just Right™"
- 2016 is the year of the Linux desktop
- For shell account, contact uncurlhalo
- Interest gauge for SouthEast LinuxFest 2016
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
- Gobblerpedia
- VTLUUG Wiki
- Wiki meeting page creation script -- this needs to happen so echarlie isn't doing it manually
- New Website?
- 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
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