10.07.2015 Views

An Introduction to Functional Programming Through Lambda Calculus

An Introduction to Functional Programming Through Lambda Calculus

An Introduction to Functional Programming Through Lambda Calculus

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

- 225 -false (implies false true) false => ... => falseλx.λy.(and (implies x y) (implies y x)) true true => ... =>and (implies true true) (implies true true) => ... =>(implies true true) (implies true true) false => ... =>(true true true) (implies true true) false => ... =>true (implies true true) false => ... =>implies true true => ... =>true true true => ... => true4)λx.(succ (pred x)) λs.(s false ) =>succ (pred λs.(s false )Simplifying: pred λs.(s false ) => ... =>so: succ => ... =>λs.(s false )λx.(pred (succ x)) λs.(s false ) =>pred (succ λs.(s false number>))Simplifying: succ λs.(s false ) => ... =>λs.(s false λs.(s false ))so: pred λs.(s false λs.(s false )) => ... =>λs.(s false )λx.(succ (pred x)) zero =>(succ (pred zero))Simplifying: pred zero => ... => zeroso: succ zero ==oneλx.(pred (succ x)) zero =>(pred (succ zero))Simplifying: succ zero == oneso: pred one => ... =>zeroChapter 41)2)sum three => ... =>recursive sum1 three => ... =>sum1 (recursive sum1) three => ... =>add three ((recursive sum1) (pred three)) -> ... ->add three (sum1 (recursive sum1) two) -> ... ->add three (add two ((recursive sum1) (pred two))) -> ... ->add three (add two (sum1 (recursive sum1) one)) -> ... ->add three (add two (add one ((recursive sum1) (pred one)))) -> ... ->add three (add two (add one (sum1 (recursive sum1) zero))) -> ... ->add three (add two (add one zero)) -> ... ->six

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!