5 ms·
I have a degree in mathematics from the University of Chicago. Want to talk about self-adjoint algebras of compactly supported continuous functions? I'm your
by jfarmer 14y ago
I have a degree in mathematics from the University of Chicago. Want to talk about self-adjoint algebras of compactly supported continuous functions? I'm your man.
I also think teaching this using mathematical notation would be a mistake. People only learn things when they relate in part to something they already know. The original lambda calculus syntax is not only abstract, it was invented before programmable computers existed.
Unless someone is either already comfortable with mathematical notation or has a background in a programming language with similar concepts (Lisp, Haskell, etc.), it's going to be a stretch to teach someone the lambda calculus -- really teach them -- unless it's framed in terms of a language they already know.
JavaScript is a great language to use for this because it has C-like syntax, which virtually all programmers understand, and first-class functions. You could use Ruby, too, but the syntax would be even more opaque.
Here's someone building the lambda calculus using only Procs in Ruby: http://codon.com/programming-with-nothing http://codon.com/programming-with-nothing
Then using Ruby 1.9's "stabbby lambda syntax" you get
-> x { -> f { f[x] } }
Not sure that's any better. The key is explaining it in terms of something the ready already understands well.
If they're not already thinking mathematically a straight-forward introduction to the lambda calculus would be ineffective.
- VeejayRampay 14y agoProgramming with nothing is such an awe-inducing article. There was a conference talk by Jim Weinrich (http://www.confreaks.com/videos/1287-rubyconf2012-y-not-adventures-in-functional-programming http://www.confreaks.com/videos/1287-rubyconf2012-y-not-adve...) using the same basic concepts. A nice-to-see for all Ruby/FP enthusiasts out there.
- pygatea 14y agoNice to see a fellow Maroon on here!