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