Gould - Lambda Calculus.pptx

advertisement
Lambda Calculus
And its graphic representation
Brief Explanation of LC
 What:
 A series of expressions, constants, and variables written in prefix
notation
 “Theoretical foundation of functional programing”
 Why Lambda?
 ^ -> λ
Beginnings of LC
 Late 1800’s through 1920’s: foundations laid
 Vorlesungen über die Algebra der Logik
 Schröder (1890–1905)
 Calculus of relatives
 Löwenheim (1915)
 Propositional calculus completeness
 Post (1921)
 Attempt at Unification
Fact Run-down
 Alonzo Church
 Publish in 1932
 Purpose: Wanted to provide a formal foundation for logic
 1933 Proved Inconsistent
 Rosser & Kleene
 Revision
Early History of LC
 1930’s Entscheidungsproblem proven to have no answer
(Church and Turing Independently)
 Turing joins growing group of users
LC Through the Years
 Computability and λ-definability
 Turing (1937)
 1940’s -1950 Little Interest
 Kleene preferred other systems of computation
 1958 -> present functional programming
 LISP
 Not only for logicians 1960’s
 Fitch (1958)
LC Today
 LISP – not directly based on LC though much stems from it
 Handles substitution through “dynamic binding”
 John McCarthy
 Algol- a pure form of LC computing
 CHUCH – a pure form of LC, and first use of the leftmost –
first reduction (as apposed to call by value)
 ((λx. x x)(λx. x x))
A More Complete Definition
 A mathematical and logical way to set up all subsequent
math functions based upon simple functions. Functions
consist of expressions which take the following forms:
 [constant]
 [variable]
 [expression][expression]
Example #1 of LC
 (λx.(λy. + x y) 5) ((λy. - y 3) 7))
 (λx. + x 5) (- 7 3) = (λx. + x 5) 4
 (+ 4 5) = 9
Example #2
 (((λf. (λx. f (f x))) (λy. (* y y))) 3)
 λx. (λy. (* y y)) ((λy. (* y y)) x) 3
 λy. (* y y)) ((λy. (* y y)) 3
 (λy. (* y y)) (* 3 3)
 (* 9 9) = 81
Real World Uses
 Basis for programing languages
Programing Languages and LC
 May be useful for some functional paradigm programmers
 Higher order
 Lack of importance
 Turing complete
 Logical Paradigm
Why Graphic Representation?
 Binds lambda calculus & emergent algebras
 Marius Buliga
 Emergent Algebras – some form of “distillation of differential calculus”
Set up Graphic LC
 “Graphic lambda calculus consists of a class of graphs
endowed with moves between them”
 Unique path to root
Example of GLC
 λ x.x
λ x.(λy.x)
Example of GLC
 (λ x.(x x))(λx.(x x))
Example of GLC
 (λ x.(x y))(λx.(x y))
(assuming y to have some value)
Use #1 of GLC
Ex. How crossing vectors may be represented in GLC
 Convertibility of 2D graphs
Use #2 of GLC
Reidemeister Moves Computable (Knot Theory)
 Convertibility of 3D Graphs
Future of Functional Programing
 Claims:
 Few of this paradigm
 F#
 Little Need
 On the Rise
 An Aggregate
Future of LC
 New Aggregates
 Logical Paradigm
 AI
 Binding Mathematics
Sources
 Historical references:
 http://www.users.waitrose.com/~hindley/SomePapers_PDFs/200
6CarHin,HistlamRp.pdf
 LC use and functionality:
 https://www.youtube.com/watch?v=v1IlyzxP6Sg
 https://en.wikipedia.org/wiki/Lambda_calculus
 http://wwwusers.di.uniroma1.it/~vamd/TSL/typedlambdacalculi.pd
f
 http://www.cs.colorado.edu/~bec/courses/csci5535s10/slides/meeting24a-encodings.6up.pdf
Sources
 Functional Programming:
 http://richardminerich.com/2012/07/functional-programming-isdead-long-live-expression-oriented-programming/
 http://homepages.inf.ed.ac.uk/wadler/papers/how-and-why/howand-why.pdf
 https://stackoverflow.com/questions/2835801/why-hasntfunctional-programming-taken-over-yet
Sources
 http://www.complex-systems.com/pdf/22-4-1.pdf
 https://www.youtube.com/watch?v=_Q_suLwFbg8
Download