ABSTRACT
λ calculus is a great formal introduction to functional programming. However, its abstract nature poses a challenge for many students as they struggle both with the unfamiliarity of functional programming and with the high abstraction and minimalism of λ calculus. As a result, functional programming classes are often delayed to older students who are hoped to be better prepared for appreciating its qualities, as was the case at the authors’ university as well. 3 years ago, as part of a redesigned curriculum around programming languages education, we have decided to introduce students to various programming paradigms much sooner than before. In doing so, we faced the problem of explaining very theoretical foundational concepts to very young students in a very short time. We have monitored the achievements and shortcomings of the new course over the past years and as a result of our findings have developed Lambdulus, an interactive and visual evaluator of λ calculus expressions that encourages students to explore the mechanisms of λ calculus by treating it not as a theoretical concept, but as a programming language in its own right.
- Alonzo Church. 1936. A note on the Entscheidungsproblem. The journal of symbolic logic (1936).Google Scholar
- Alonzo Church. 1941. The Calculi of Lambda-Conversion. Annals of Mathematics Studies 6 (1941).Google Scholar
- D. E. Knuth. 1984. Literate Programming. Comput. J. 27, 2 (01 1984), 97-111. arXiv:http://oup.prod.sis.lan/comjnl/article-pdf/27/2/97/981657/270097.pdf Google Scholar
- P. J. Landin. 1964. The Mechanical Evaluation of Expressions. Comput. J. 6, 4 (01 1964), 308-320. arXiv:http://oup.prod.sis.lan/comjnl/article-pdf/6/4/308/1067901/6-4-308.pdfGoogle Scholar
- Gordon Plotkin. 1975. Call-by-Name, Call-by-Value and the Lambda Calculus. In Theoretical Computer Science, Vol. 1. 125,159.Google ScholarCross Ref
- Daniel Sainati and Adrian Sampson. 2018. LambdaLab: An Interactive ?-Calculus Reducer for Learning. In ACM SIGPLAN SPLASH-E Workshop (SPLASH-E 18). Google ScholarDigital Library
- David H. D. Warren. 1983. An Abstract Prolog Instruction Set. Technical Report. Artificial Intelligence Center, Computer Science and Technology Division, SR International. http://www.ai.sri.com/pubs/files/641.pdfGoogle Scholar
- T. Wrigstad and E. Castegren. 2017. Mastery Learning-Like Teaching with Achievements.. In ACM SIGPLAN SPLASH-E Workshop (SPLASH-E 17). http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-333724.Google Scholar
Index Terms
- Lambdulus: teaching lambda calculus practically
Recommendations
Linear lambda calculus with non-linear first-class continuations
ICSCA '17: Proceedings of the 6th International Conference on Software and Computer ApplicationsThe Curry-Howard isomorphism is the correspondence between propositions and types, proofs and lambda-terms, and proof normalization and evaluation. In Curry-Howard isomorphism, we find a duality between values and continuations in pure functional ...
The Intensional Lambda Calculus
LFCS '07: Proceedings of the international symposium on Logical Foundations of Computer ScienceWe introduce a natural deduction formulation for the Logic of Proofs, a refinement of modal logic S4 in which the assertion □ A is replaced by [[ s ]] A whose intended reading is " s is a proof of A ". A term calculus for this formulation yields a typed ...
Lambda Abstraction Algebras: Coordinatizing Models of Lambda Calculus
Lambda abstraction algebras are designed to algebraize the untyped lambda calculus in the same way cylindric and polyadic algebras algebraize the first-order logic; they are intended as an alternative to combinatory algebras in this regard. Like ...
Comments