Learning Lambda Calculus












109












$begingroup$


What are some good online/free resources (tutorials, guides, exercises, and the like) for learning Lambda Calculus?



Specifically, I am interested in the following areas:




  • Untyped lambda calculus

  • Simply-typed lambda calculus

  • Other typed lambda calculi

  • Church's Theory of Types (I'm not sure where this fits in).


(As I understand, this should provide a solid basis for the understanding of type theory.)



Any advice and suggestions would be appreciated.










share|cite|improve this question











$endgroup$

















    109












    $begingroup$


    What are some good online/free resources (tutorials, guides, exercises, and the like) for learning Lambda Calculus?



    Specifically, I am interested in the following areas:




    • Untyped lambda calculus

    • Simply-typed lambda calculus

    • Other typed lambda calculi

    • Church's Theory of Types (I'm not sure where this fits in).


    (As I understand, this should provide a solid basis for the understanding of type theory.)



    Any advice and suggestions would be appreciated.










    share|cite|improve this question











    $endgroup$















      109












      109








      109


      108



      $begingroup$


      What are some good online/free resources (tutorials, guides, exercises, and the like) for learning Lambda Calculus?



      Specifically, I am interested in the following areas:




      • Untyped lambda calculus

      • Simply-typed lambda calculus

      • Other typed lambda calculi

      • Church's Theory of Types (I'm not sure where this fits in).


      (As I understand, this should provide a solid basis for the understanding of type theory.)



      Any advice and suggestions would be appreciated.










      share|cite|improve this question











      $endgroup$




      What are some good online/free resources (tutorials, guides, exercises, and the like) for learning Lambda Calculus?



      Specifically, I am interested in the following areas:




      • Untyped lambda calculus

      • Simply-typed lambda calculus

      • Other typed lambda calculi

      • Church's Theory of Types (I'm not sure where this fits in).


      (As I understand, this should provide a solid basis for the understanding of type theory.)



      Any advice and suggestions would be appreciated.







      logic learning online-resources lambda-calculus type-theory






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Apr 17 '16 at 6:53


























      community wiki





      4 revs, 4 users 100%
      Noldorin























          9 Answers
          9






          active

          oldest

          votes


















          70












          $begingroup$

          alligators



          Alligator Eggs is a cool way to learn lambda calculus.



          Also learning functional programming languages like Scheme, Haskell etc. will be added fun.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
            $endgroup$
            – Noldorin
            Aug 4 '10 at 13:18






          • 3




            $begingroup$
            Looks really fun! I can use this to teach kids.
            $endgroup$
            – Chao Xu
            Aug 4 '10 at 13:41






          • 1




            $begingroup$
            Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
            $endgroup$
            – fgp
            May 27 '13 at 14:10












          • $begingroup$
            Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
            $endgroup$
            – zumalifeguard
            Jul 21 '18 at 1:55



















          38












          $begingroup$

          Recommendations:




          1. Barendregt & Barendsen, 1984, Introduction to lambda-calculus;

          2. Girard, Lafont & Taylor, 1987, Proofs and Types;

          3. Sørenson & Urzyczyn, 1999, Lectures on the Curry-Howard Isomorphism.


          All of these are mentioned in the LtU Getting Started thread.






          share|cite|improve this answer











          $endgroup$









          • 1




            $begingroup$
            Thanks again Charles, that looks like good material.
            $endgroup$
            – Noldorin
            Jul 30 '10 at 8:21










          • $begingroup$
            Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
            $endgroup$
            – Noldorin
            Jul 30 '10 at 14:23










          • $begingroup$
            @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
            $endgroup$
            – Charles Stewart
            Mar 17 '17 at 8:19










          • $begingroup$
            Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
            $endgroup$
            – Noldorin
            Mar 17 '17 at 21:40










          • $begingroup$
            @Noldorin You could write up your own answer to this question, maybe?
            $endgroup$
            – Charles Stewart
            Mar 19 '17 at 11:16



















          32












          $begingroup$

          Here are a couple of resources that will get you started:




          1. The Lambda Calculus, Its Syntax and Semantics - This is a must!


          2. Lecture Notes on the Lambda Calculus by Peter Selinger


          3. History of Lambda Calculi


          4. Impact of Lambda Calculus on Logic and Computer Science


          5. Introduction to Lambda Calculus


          6. Lambda Calculi with Types


          7. Tutorial Introduction to Lambda Calculus


          8. Call-by-name, call-by-value and the Lambda Calculus


          9. Control operators, the SECD-machine, and

            the lambda-calculus. - With effects


          10. Modified basic functionality in combinatory logic- H.B. Curry.


          11. The principal type scheme of an object in combinatory
            logic. - J. Roger Hindley.



          Since I am a computer science graduate, most of these are geared towards computer scientists rather than logicians.



          Bonus : There is a new book that has come out Semantics Engineering with PLT Redex. I haven't read it but people have told me good things about it.



          I hope this helps. Please feel free to ask me any questions. Thanks.






          share|cite|improve this answer











          $endgroup$









          • 3




            $begingroup$
            I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
            $endgroup$
            – Виталий Олегович
            Jun 1 '14 at 18:00



















          13












          $begingroup$

          I like Type Theory and Functional Programming by Simon Thompson.






          share|cite|improve this answer









          $endgroup$





















            9












            $begingroup$

            Lambda-Calculus and Combinators, an Introduction by J. ROGER HINDLEY and JONATHAN P. SELDIN is a great (and relatively modern) resource that doesn't assume any previous knowledge.



            It is available online here.






            share|cite|improve this answer











            $endgroup$





















              8












              $begingroup$

              It might be nice to work through Structure and Interpretation of Computer Programs, which is available online for free. This book is an introduction to computer science and the programming language Scheme, which is a flavor of the programming language Lisp, which is based on the lambda calculus. Although it is not strictly a book about the lambda calculus, it might be fun or useful to gain some hands-on and "practical" experience with the lambda calculus by reading some of this book and working through some of its exercises.






              share|cite|improve this answer









              $endgroup$









              • 1




                $begingroup$
                Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                $endgroup$
                – Noldorin
                Jul 28 '10 at 15:48






              • 8




                $begingroup$
                This won't help much with understanding types.
                $endgroup$
                – Charles Stewart
                Jul 28 '10 at 21:06










              • $begingroup$
                @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                $endgroup$
                – Doug Spoonwood
                Nov 5 '16 at 14:35








              • 1




                $begingroup$
                @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                $endgroup$
                – Charles Stewart
                Dec 8 '16 at 11:55



















              7












              $begingroup$

              lol http://dkeenan.com/Lambda/Graphical_lambda27.gif



              To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction by David C Keenan is a nice complement to Alligator Eggs given above. Keenan uses Smullyan's bird metaphors from To Mock a Mockingbird and augments them with diagram notation, which aids in building intuition around combinators. The above is Y combinator in Keenan's notation.






              share|cite|improve this answer











              $endgroup$





















                4












                $begingroup$

                I found this iPhone app that works as an un-typed lambda calculator, it works with successor, addition, addition with successor, multiplication, exponentiation, predecessor and subtraction operations. It shows a step by step process which might be helpful for people who are just starting with lambda calculus.



                link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=928503408&mt=8






                share|cite|improve this answer











                $endgroup$





















                  1












                  $begingroup$

                  Some time ago, I was surprised not to find many untyped & simply-typed lambda calculus interpreters among the answers to this question, so I started working for a while in an educational lambda calculus interpreter called Mikrokosmos (can also be used online). It implements untyped and simply typed lambda calculus (and also illustrates Curry-Howard).



                  Surely, you could also use some functional programming language; but at least for me, it was difficult to determine exactly which constructs of the language are lambda calculus and which are extras offered by that particular language. Haskell for instance approximately implements System-F, but I also wanted to have a simply(as simple as possible)-typed lambda calculus interpreter.



                  The interpreter is free software and you can integrate them on other learning materials (such as Jupyter notebooks or web pages). I have used it before to teach lambda calculus to CS students.



                  Please note that I am the main developer of this interpreter. I am only posting here because this same question inspired me to start the development.






                  share|cite|improve this answer











                  $endgroup$













                    Your Answer





                    StackExchange.ifUsing("editor", function () {
                    return StackExchange.using("mathjaxEditing", function () {
                    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
                    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
                    });
                    });
                    }, "mathjax-editing");

                    StackExchange.ready(function() {
                    var channelOptions = {
                    tags: "".split(" "),
                    id: "69"
                    };
                    initTagRenderer("".split(" "), "".split(" "), channelOptions);

                    StackExchange.using("externalEditor", function() {
                    // Have to fire editor after snippets, if snippets enabled
                    if (StackExchange.settings.snippets.snippetsEnabled) {
                    StackExchange.using("snippets", function() {
                    createEditor();
                    });
                    }
                    else {
                    createEditor();
                    }
                    });

                    function createEditor() {
                    StackExchange.prepareEditor({
                    heartbeatType: 'answer',
                    autoActivateHeartbeat: false,
                    convertImagesToLinks: true,
                    noModals: true,
                    showLowRepImageUploadWarning: true,
                    reputationToPostImages: 10,
                    bindNavPrevention: true,
                    postfix: "",
                    imageUploader: {
                    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                    allowUrls: true
                    },
                    noCode: true, onDemand: true,
                    discardSelector: ".discard-answer"
                    ,immediatelyShowMarkdownHelp:true
                    });


                    }
                    });














                    draft saved

                    draft discarded


















                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f967%2flearning-lambda-calculus%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown

























                    9 Answers
                    9






                    active

                    oldest

                    votes








                    9 Answers
                    9






                    active

                    oldest

                    votes









                    active

                    oldest

                    votes






                    active

                    oldest

                    votes









                    70












                    $begingroup$

                    alligators



                    Alligator Eggs is a cool way to learn lambda calculus.



                    Also learning functional programming languages like Scheme, Haskell etc. will be added fun.






                    share|cite|improve this answer











                    $endgroup$













                    • $begingroup$
                      Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                      $endgroup$
                      – Noldorin
                      Aug 4 '10 at 13:18






                    • 3




                      $begingroup$
                      Looks really fun! I can use this to teach kids.
                      $endgroup$
                      – Chao Xu
                      Aug 4 '10 at 13:41






                    • 1




                      $begingroup$
                      Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                      $endgroup$
                      – fgp
                      May 27 '13 at 14:10












                    • $begingroup$
                      Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                      $endgroup$
                      – zumalifeguard
                      Jul 21 '18 at 1:55
















                    70












                    $begingroup$

                    alligators



                    Alligator Eggs is a cool way to learn lambda calculus.



                    Also learning functional programming languages like Scheme, Haskell etc. will be added fun.






                    share|cite|improve this answer











                    $endgroup$













                    • $begingroup$
                      Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                      $endgroup$
                      – Noldorin
                      Aug 4 '10 at 13:18






                    • 3




                      $begingroup$
                      Looks really fun! I can use this to teach kids.
                      $endgroup$
                      – Chao Xu
                      Aug 4 '10 at 13:41






                    • 1




                      $begingroup$
                      Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                      $endgroup$
                      – fgp
                      May 27 '13 at 14:10












                    • $begingroup$
                      Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                      $endgroup$
                      – zumalifeguard
                      Jul 21 '18 at 1:55














                    70












                    70








                    70





                    $begingroup$

                    alligators



                    Alligator Eggs is a cool way to learn lambda calculus.



                    Also learning functional programming languages like Scheme, Haskell etc. will be added fun.






                    share|cite|improve this answer











                    $endgroup$



                    alligators



                    Alligator Eggs is a cool way to learn lambda calculus.



                    Also learning functional programming languages like Scheme, Haskell etc. will be added fun.







                    share|cite|improve this answer














                    share|cite|improve this answer



                    share|cite|improve this answer








                    edited Dec 22 '18 at 18:34









                    Glorfindel

                    3,41981830




                    3,41981830










                    answered Aug 4 '10 at 13:06









                    Pratik DeogharePratik Deoghare

                    5,87342438




                    5,87342438












                    • $begingroup$
                      Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                      $endgroup$
                      – Noldorin
                      Aug 4 '10 at 13:18






                    • 3




                      $begingroup$
                      Looks really fun! I can use this to teach kids.
                      $endgroup$
                      – Chao Xu
                      Aug 4 '10 at 13:41






                    • 1




                      $begingroup$
                      Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                      $endgroup$
                      – fgp
                      May 27 '13 at 14:10












                    • $begingroup$
                      Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                      $endgroup$
                      – zumalifeguard
                      Jul 21 '18 at 1:55


















                    • $begingroup$
                      Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                      $endgroup$
                      – Noldorin
                      Aug 4 '10 at 13:18






                    • 3




                      $begingroup$
                      Looks really fun! I can use this to teach kids.
                      $endgroup$
                      – Chao Xu
                      Aug 4 '10 at 13:41






                    • 1




                      $begingroup$
                      Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                      $endgroup$
                      – fgp
                      May 27 '13 at 14:10












                    • $begingroup$
                      Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                      $endgroup$
                      – zumalifeguard
                      Jul 21 '18 at 1:55
















                    $begingroup$
                    Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                    $endgroup$
                    – Noldorin
                    Aug 4 '10 at 13:18




                    $begingroup$
                    Hah, looks pretty funny. Maybe not the in-depth tutorial I'm looking for, but will have to check it out!
                    $endgroup$
                    – Noldorin
                    Aug 4 '10 at 13:18




                    3




                    3




                    $begingroup$
                    Looks really fun! I can use this to teach kids.
                    $endgroup$
                    – Chao Xu
                    Aug 4 '10 at 13:41




                    $begingroup$
                    Looks really fun! I can use this to teach kids.
                    $endgroup$
                    – Chao Xu
                    Aug 4 '10 at 13:41




                    1




                    1




                    $begingroup$
                    Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                    $endgroup$
                    – fgp
                    May 27 '13 at 14:10






                    $begingroup$
                    Now that I call a nice model of lambda calculus! I wonder what Dana Scott has to say about this ;-)
                    $endgroup$
                    – fgp
                    May 27 '13 at 14:10














                    $begingroup$
                    Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                    $endgroup$
                    – zumalifeguard
                    Jul 21 '18 at 1:55




                    $begingroup$
                    Alligator Eggs may be a cool way to teach it, but the site assumes you already have knowledge and you're trying to teach it to others who don't.
                    $endgroup$
                    – zumalifeguard
                    Jul 21 '18 at 1:55











                    38












                    $begingroup$

                    Recommendations:




                    1. Barendregt & Barendsen, 1984, Introduction to lambda-calculus;

                    2. Girard, Lafont & Taylor, 1987, Proofs and Types;

                    3. Sørenson & Urzyczyn, 1999, Lectures on the Curry-Howard Isomorphism.


                    All of these are mentioned in the LtU Getting Started thread.






                    share|cite|improve this answer











                    $endgroup$









                    • 1




                      $begingroup$
                      Thanks again Charles, that looks like good material.
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 8:21










                    • $begingroup$
                      Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 14:23










                    • $begingroup$
                      @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                      $endgroup$
                      – Charles Stewart
                      Mar 17 '17 at 8:19










                    • $begingroup$
                      Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                      $endgroup$
                      – Noldorin
                      Mar 17 '17 at 21:40










                    • $begingroup$
                      @Noldorin You could write up your own answer to this question, maybe?
                      $endgroup$
                      – Charles Stewart
                      Mar 19 '17 at 11:16
















                    38












                    $begingroup$

                    Recommendations:




                    1. Barendregt & Barendsen, 1984, Introduction to lambda-calculus;

                    2. Girard, Lafont & Taylor, 1987, Proofs and Types;

                    3. Sørenson & Urzyczyn, 1999, Lectures on the Curry-Howard Isomorphism.


                    All of these are mentioned in the LtU Getting Started thread.






                    share|cite|improve this answer











                    $endgroup$









                    • 1




                      $begingroup$
                      Thanks again Charles, that looks like good material.
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 8:21










                    • $begingroup$
                      Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 14:23










                    • $begingroup$
                      @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                      $endgroup$
                      – Charles Stewart
                      Mar 17 '17 at 8:19










                    • $begingroup$
                      Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                      $endgroup$
                      – Noldorin
                      Mar 17 '17 at 21:40










                    • $begingroup$
                      @Noldorin You could write up your own answer to this question, maybe?
                      $endgroup$
                      – Charles Stewart
                      Mar 19 '17 at 11:16














                    38












                    38








                    38





                    $begingroup$

                    Recommendations:




                    1. Barendregt & Barendsen, 1984, Introduction to lambda-calculus;

                    2. Girard, Lafont & Taylor, 1987, Proofs and Types;

                    3. Sørenson & Urzyczyn, 1999, Lectures on the Curry-Howard Isomorphism.


                    All of these are mentioned in the LtU Getting Started thread.






                    share|cite|improve this answer











                    $endgroup$



                    Recommendations:




                    1. Barendregt & Barendsen, 1984, Introduction to lambda-calculus;

                    2. Girard, Lafont & Taylor, 1987, Proofs and Types;

                    3. Sørenson & Urzyczyn, 1999, Lectures on the Curry-Howard Isomorphism.


                    All of these are mentioned in the LtU Getting Started thread.







                    share|cite|improve this answer














                    share|cite|improve this answer



                    share|cite|improve this answer








                    edited Sep 28 '18 at 21:07









                    ProbablyJody

                    33




                    33










                    answered Jul 28 '10 at 21:05









                    Charles StewartCharles Stewart

                    3,3492229




                    3,3492229








                    • 1




                      $begingroup$
                      Thanks again Charles, that looks like good material.
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 8:21










                    • $begingroup$
                      Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 14:23










                    • $begingroup$
                      @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                      $endgroup$
                      – Charles Stewart
                      Mar 17 '17 at 8:19










                    • $begingroup$
                      Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                      $endgroup$
                      – Noldorin
                      Mar 17 '17 at 21:40










                    • $begingroup$
                      @Noldorin You could write up your own answer to this question, maybe?
                      $endgroup$
                      – Charles Stewart
                      Mar 19 '17 at 11:16














                    • 1




                      $begingroup$
                      Thanks again Charles, that looks like good material.
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 8:21










                    • $begingroup$
                      Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                      $endgroup$
                      – Noldorin
                      Jul 30 '10 at 14:23










                    • $begingroup$
                      @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                      $endgroup$
                      – Charles Stewart
                      Mar 17 '17 at 8:19










                    • $begingroup$
                      Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                      $endgroup$
                      – Noldorin
                      Mar 17 '17 at 21:40










                    • $begingroup$
                      @Noldorin You could write up your own answer to this question, maybe?
                      $endgroup$
                      – Charles Stewart
                      Mar 19 '17 at 11:16








                    1




                    1




                    $begingroup$
                    Thanks again Charles, that looks like good material.
                    $endgroup$
                    – Noldorin
                    Jul 30 '10 at 8:21




                    $begingroup$
                    Thanks again Charles, that looks like good material.
                    $endgroup$
                    – Noldorin
                    Jul 30 '10 at 8:21












                    $begingroup$
                    Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                    $endgroup$
                    – Noldorin
                    Jul 30 '10 at 14:23




                    $begingroup$
                    Out of curiosity, will learning simply and then more advanced typed versions of lambda calculus give me a pretty good coverage of the field of type theory?
                    $endgroup$
                    – Noldorin
                    Jul 30 '10 at 14:23












                    $begingroup$
                    @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                    $endgroup$
                    – Charles Stewart
                    Mar 17 '17 at 8:19




                    $begingroup$
                    @Noldorin - Sorry for the long delay in replying... No, or rather it depends on what you mean by "more advanced typed versions of lambda calculus" - I think it is wiser in this case to work through seminal texts, rather than thinking of mastering the relevant formal systems directly.
                    $endgroup$
                    – Charles Stewart
                    Mar 17 '17 at 8:19












                    $begingroup$
                    Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                    $endgroup$
                    – Noldorin
                    Mar 17 '17 at 21:40




                    $begingroup$
                    Haha, only 7 years eh... better late than never, as they say! I've learnt a lot since then, but thank you.
                    $endgroup$
                    – Noldorin
                    Mar 17 '17 at 21:40












                    $begingroup$
                    @Noldorin You could write up your own answer to this question, maybe?
                    $endgroup$
                    – Charles Stewart
                    Mar 19 '17 at 11:16




                    $begingroup$
                    @Noldorin You could write up your own answer to this question, maybe?
                    $endgroup$
                    – Charles Stewart
                    Mar 19 '17 at 11:16











                    32












                    $begingroup$

                    Here are a couple of resources that will get you started:




                    1. The Lambda Calculus, Its Syntax and Semantics - This is a must!


                    2. Lecture Notes on the Lambda Calculus by Peter Selinger


                    3. History of Lambda Calculi


                    4. Impact of Lambda Calculus on Logic and Computer Science


                    5. Introduction to Lambda Calculus


                    6. Lambda Calculi with Types


                    7. Tutorial Introduction to Lambda Calculus


                    8. Call-by-name, call-by-value and the Lambda Calculus


                    9. Control operators, the SECD-machine, and

                      the lambda-calculus. - With effects


                    10. Modified basic functionality in combinatory logic- H.B. Curry.


                    11. The principal type scheme of an object in combinatory
                      logic. - J. Roger Hindley.



                    Since I am a computer science graduate, most of these are geared towards computer scientists rather than logicians.



                    Bonus : There is a new book that has come out Semantics Engineering with PLT Redex. I haven't read it but people have told me good things about it.



                    I hope this helps. Please feel free to ask me any questions. Thanks.






                    share|cite|improve this answer











                    $endgroup$









                    • 3




                      $begingroup$
                      I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                      $endgroup$
                      – Виталий Олегович
                      Jun 1 '14 at 18:00
















                    32












                    $begingroup$

                    Here are a couple of resources that will get you started:




                    1. The Lambda Calculus, Its Syntax and Semantics - This is a must!


                    2. Lecture Notes on the Lambda Calculus by Peter Selinger


                    3. History of Lambda Calculi


                    4. Impact of Lambda Calculus on Logic and Computer Science


                    5. Introduction to Lambda Calculus


                    6. Lambda Calculi with Types


                    7. Tutorial Introduction to Lambda Calculus


                    8. Call-by-name, call-by-value and the Lambda Calculus


                    9. Control operators, the SECD-machine, and

                      the lambda-calculus. - With effects


                    10. Modified basic functionality in combinatory logic- H.B. Curry.


                    11. The principal type scheme of an object in combinatory
                      logic. - J. Roger Hindley.



                    Since I am a computer science graduate, most of these are geared towards computer scientists rather than logicians.



                    Bonus : There is a new book that has come out Semantics Engineering with PLT Redex. I haven't read it but people have told me good things about it.



                    I hope this helps. Please feel free to ask me any questions. Thanks.






                    share|cite|improve this answer











                    $endgroup$









                    • 3




                      $begingroup$
                      I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                      $endgroup$
                      – Виталий Олегович
                      Jun 1 '14 at 18:00














                    32












                    32








                    32





                    $begingroup$

                    Here are a couple of resources that will get you started:




                    1. The Lambda Calculus, Its Syntax and Semantics - This is a must!


                    2. Lecture Notes on the Lambda Calculus by Peter Selinger


                    3. History of Lambda Calculi


                    4. Impact of Lambda Calculus on Logic and Computer Science


                    5. Introduction to Lambda Calculus


                    6. Lambda Calculi with Types


                    7. Tutorial Introduction to Lambda Calculus


                    8. Call-by-name, call-by-value and the Lambda Calculus


                    9. Control operators, the SECD-machine, and

                      the lambda-calculus. - With effects


                    10. Modified basic functionality in combinatory logic- H.B. Curry.


                    11. The principal type scheme of an object in combinatory
                      logic. - J. Roger Hindley.



                    Since I am a computer science graduate, most of these are geared towards computer scientists rather than logicians.



                    Bonus : There is a new book that has come out Semantics Engineering with PLT Redex. I haven't read it but people have told me good things about it.



                    I hope this helps. Please feel free to ask me any questions. Thanks.






                    share|cite|improve this answer











                    $endgroup$



                    Here are a couple of resources that will get you started:




                    1. The Lambda Calculus, Its Syntax and Semantics - This is a must!


                    2. Lecture Notes on the Lambda Calculus by Peter Selinger


                    3. History of Lambda Calculi


                    4. Impact of Lambda Calculus on Logic and Computer Science


                    5. Introduction to Lambda Calculus


                    6. Lambda Calculi with Types


                    7. Tutorial Introduction to Lambda Calculus


                    8. Call-by-name, call-by-value and the Lambda Calculus


                    9. Control operators, the SECD-machine, and

                      the lambda-calculus. - With effects


                    10. Modified basic functionality in combinatory logic- H.B. Curry.


                    11. The principal type scheme of an object in combinatory
                      logic. - J. Roger Hindley.



                    Since I am a computer science graduate, most of these are geared towards computer scientists rather than logicians.



                    Bonus : There is a new book that has come out Semantics Engineering with PLT Redex. I haven't read it but people have told me good things about it.



                    I hope this helps. Please feel free to ask me any questions. Thanks.







                    share|cite|improve this answer














                    share|cite|improve this answer



                    share|cite|improve this answer








                    edited Oct 23 '16 at 4:40


























                    community wiki





                    2 revs, 2 users 98%
                    kunjan kshetri









                    • 3




                      $begingroup$
                      I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                      $endgroup$
                      – Виталий Олегович
                      Jun 1 '14 at 18:00














                    • 3




                      $begingroup$
                      I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                      $endgroup$
                      – Виталий Олегович
                      Jun 1 '14 at 18:00








                    3




                    3




                    $begingroup$
                    I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                    $endgroup$
                    – Виталий Олегович
                    Jun 1 '14 at 18:00




                    $begingroup$
                    I believe that the book by Henk P. Barendregt “The Lambda Calculus, Its Syntax and Semantics” is too formal to be useful as a first textbook to learn lambda calculus. I think it is more a reference book for people working in related fields.
                    $endgroup$
                    – Виталий Олегович
                    Jun 1 '14 at 18:00











                    13












                    $begingroup$

                    I like Type Theory and Functional Programming by Simon Thompson.






                    share|cite|improve this answer









                    $endgroup$


















                      13












                      $begingroup$

                      I like Type Theory and Functional Programming by Simon Thompson.






                      share|cite|improve this answer









                      $endgroup$
















                        13












                        13








                        13





                        $begingroup$

                        I like Type Theory and Functional Programming by Simon Thompson.






                        share|cite|improve this answer









                        $endgroup$



                        I like Type Theory and Functional Programming by Simon Thompson.







                        share|cite|improve this answer












                        share|cite|improve this answer



                        share|cite|improve this answer










                        answered Jul 30 '10 at 15:07









                        rgrigrgrig

                        747414




                        747414























                            9












                            $begingroup$

                            Lambda-Calculus and Combinators, an Introduction by J. ROGER HINDLEY and JONATHAN P. SELDIN is a great (and relatively modern) resource that doesn't assume any previous knowledge.



                            It is available online here.






                            share|cite|improve this answer











                            $endgroup$


















                              9












                              $begingroup$

                              Lambda-Calculus and Combinators, an Introduction by J. ROGER HINDLEY and JONATHAN P. SELDIN is a great (and relatively modern) resource that doesn't assume any previous knowledge.



                              It is available online here.






                              share|cite|improve this answer











                              $endgroup$
















                                9












                                9








                                9





                                $begingroup$

                                Lambda-Calculus and Combinators, an Introduction by J. ROGER HINDLEY and JONATHAN P. SELDIN is a great (and relatively modern) resource that doesn't assume any previous knowledge.



                                It is available online here.






                                share|cite|improve this answer











                                $endgroup$



                                Lambda-Calculus and Combinators, an Introduction by J. ROGER HINDLEY and JONATHAN P. SELDIN is a great (and relatively modern) resource that doesn't assume any previous knowledge.



                                It is available online here.







                                share|cite|improve this answer














                                share|cite|improve this answer



                                share|cite|improve this answer








                                answered Oct 20 '12 at 20:45


























                                community wiki





                                Mikael
























                                    8












                                    $begingroup$

                                    It might be nice to work through Structure and Interpretation of Computer Programs, which is available online for free. This book is an introduction to computer science and the programming language Scheme, which is a flavor of the programming language Lisp, which is based on the lambda calculus. Although it is not strictly a book about the lambda calculus, it might be fun or useful to gain some hands-on and "practical" experience with the lambda calculus by reading some of this book and working through some of its exercises.






                                    share|cite|improve this answer









                                    $endgroup$









                                    • 1




                                      $begingroup$
                                      Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                      $endgroup$
                                      – Noldorin
                                      Jul 28 '10 at 15:48






                                    • 8




                                      $begingroup$
                                      This won't help much with understanding types.
                                      $endgroup$
                                      – Charles Stewart
                                      Jul 28 '10 at 21:06










                                    • $begingroup$
                                      @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                      $endgroup$
                                      – Doug Spoonwood
                                      Nov 5 '16 at 14:35








                                    • 1




                                      $begingroup$
                                      @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                      $endgroup$
                                      – Charles Stewart
                                      Dec 8 '16 at 11:55
















                                    8












                                    $begingroup$

                                    It might be nice to work through Structure and Interpretation of Computer Programs, which is available online for free. This book is an introduction to computer science and the programming language Scheme, which is a flavor of the programming language Lisp, which is based on the lambda calculus. Although it is not strictly a book about the lambda calculus, it might be fun or useful to gain some hands-on and "practical" experience with the lambda calculus by reading some of this book and working through some of its exercises.






                                    share|cite|improve this answer









                                    $endgroup$









                                    • 1




                                      $begingroup$
                                      Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                      $endgroup$
                                      – Noldorin
                                      Jul 28 '10 at 15:48






                                    • 8




                                      $begingroup$
                                      This won't help much with understanding types.
                                      $endgroup$
                                      – Charles Stewart
                                      Jul 28 '10 at 21:06










                                    • $begingroup$
                                      @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                      $endgroup$
                                      – Doug Spoonwood
                                      Nov 5 '16 at 14:35








                                    • 1




                                      $begingroup$
                                      @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                      $endgroup$
                                      – Charles Stewart
                                      Dec 8 '16 at 11:55














                                    8












                                    8








                                    8





                                    $begingroup$

                                    It might be nice to work through Structure and Interpretation of Computer Programs, which is available online for free. This book is an introduction to computer science and the programming language Scheme, which is a flavor of the programming language Lisp, which is based on the lambda calculus. Although it is not strictly a book about the lambda calculus, it might be fun or useful to gain some hands-on and "practical" experience with the lambda calculus by reading some of this book and working through some of its exercises.






                                    share|cite|improve this answer









                                    $endgroup$



                                    It might be nice to work through Structure and Interpretation of Computer Programs, which is available online for free. This book is an introduction to computer science and the programming language Scheme, which is a flavor of the programming language Lisp, which is based on the lambda calculus. Although it is not strictly a book about the lambda calculus, it might be fun or useful to gain some hands-on and "practical" experience with the lambda calculus by reading some of this book and working through some of its exercises.







                                    share|cite|improve this answer












                                    share|cite|improve this answer



                                    share|cite|improve this answer










                                    answered Jul 28 '10 at 15:18









                                    Kevin H. LinKevin H. Lin

                                    1,8231325




                                    1,8231325








                                    • 1




                                      $begingroup$
                                      Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                      $endgroup$
                                      – Noldorin
                                      Jul 28 '10 at 15:48






                                    • 8




                                      $begingroup$
                                      This won't help much with understanding types.
                                      $endgroup$
                                      – Charles Stewart
                                      Jul 28 '10 at 21:06










                                    • $begingroup$
                                      @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                      $endgroup$
                                      – Doug Spoonwood
                                      Nov 5 '16 at 14:35








                                    • 1




                                      $begingroup$
                                      @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                      $endgroup$
                                      – Charles Stewart
                                      Dec 8 '16 at 11:55














                                    • 1




                                      $begingroup$
                                      Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                      $endgroup$
                                      – Noldorin
                                      Jul 28 '10 at 15:48






                                    • 8




                                      $begingroup$
                                      This won't help much with understanding types.
                                      $endgroup$
                                      – Charles Stewart
                                      Jul 28 '10 at 21:06










                                    • $begingroup$
                                      @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                      $endgroup$
                                      – Doug Spoonwood
                                      Nov 5 '16 at 14:35








                                    • 1




                                      $begingroup$
                                      @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                      $endgroup$
                                      – Charles Stewart
                                      Dec 8 '16 at 11:55








                                    1




                                    1




                                    $begingroup$
                                    Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                    $endgroup$
                                    – Noldorin
                                    Jul 28 '10 at 15:48




                                    $begingroup$
                                    Thanks for the tip. I'm sure you're right in saying that it will provide an insight, though I am perhaps looking for a more theoretical approach (as Alonzo Church originally formulated it). I have some active experience in F# which should provide a basis.
                                    $endgroup$
                                    – Noldorin
                                    Jul 28 '10 at 15:48




                                    8




                                    8




                                    $begingroup$
                                    This won't help much with understanding types.
                                    $endgroup$
                                    – Charles Stewart
                                    Jul 28 '10 at 21:06




                                    $begingroup$
                                    This won't help much with understanding types.
                                    $endgroup$
                                    – Charles Stewart
                                    Jul 28 '10 at 21:06












                                    $begingroup$
                                    @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                    $endgroup$
                                    – Doug Spoonwood
                                    Nov 5 '16 at 14:35






                                    $begingroup$
                                    @CharlesStewart I'm responding to your old comment, because I guess with the number of upvotes the original question makes for a good reference question, and your comment somehow has a rating of 7. The question indicates an interest in untyped lambda calculus, so I don't see how your comment is relevant.
                                    $endgroup$
                                    – Doug Spoonwood
                                    Nov 5 '16 at 14:35






                                    1




                                    1




                                    $begingroup$
                                    @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                    $endgroup$
                                    – Charles Stewart
                                    Dec 8 '16 at 11:55




                                    $begingroup$
                                    @DougSpoonwood Untyped lambda calculus is just one thing the question asks for. Mostly the question is after information about typed lambda calculus.
                                    $endgroup$
                                    – Charles Stewart
                                    Dec 8 '16 at 11:55











                                    7












                                    $begingroup$

                                    lol http://dkeenan.com/Lambda/Graphical_lambda27.gif



                                    To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction by David C Keenan is a nice complement to Alligator Eggs given above. Keenan uses Smullyan's bird metaphors from To Mock a Mockingbird and augments them with diagram notation, which aids in building intuition around combinators. The above is Y combinator in Keenan's notation.






                                    share|cite|improve this answer











                                    $endgroup$


















                                      7












                                      $begingroup$

                                      lol http://dkeenan.com/Lambda/Graphical_lambda27.gif



                                      To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction by David C Keenan is a nice complement to Alligator Eggs given above. Keenan uses Smullyan's bird metaphors from To Mock a Mockingbird and augments them with diagram notation, which aids in building intuition around combinators. The above is Y combinator in Keenan's notation.






                                      share|cite|improve this answer











                                      $endgroup$
















                                        7












                                        7








                                        7





                                        $begingroup$

                                        lol http://dkeenan.com/Lambda/Graphical_lambda27.gif



                                        To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction by David C Keenan is a nice complement to Alligator Eggs given above. Keenan uses Smullyan's bird metaphors from To Mock a Mockingbird and augments them with diagram notation, which aids in building intuition around combinators. The above is Y combinator in Keenan's notation.






                                        share|cite|improve this answer











                                        $endgroup$



                                        lol http://dkeenan.com/Lambda/Graphical_lambda27.gif



                                        To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction by David C Keenan is a nice complement to Alligator Eggs given above. Keenan uses Smullyan's bird metaphors from To Mock a Mockingbird and augments them with diagram notation, which aids in building intuition around combinators. The above is Y combinator in Keenan's notation.







                                        share|cite|improve this answer














                                        share|cite|improve this answer



                                        share|cite|improve this answer








                                        answered Dec 26 '14 at 19:39


























                                        community wiki





                                        Mirzhan Irkegulov
























                                            4












                                            $begingroup$

                                            I found this iPhone app that works as an un-typed lambda calculator, it works with successor, addition, addition with successor, multiplication, exponentiation, predecessor and subtraction operations. It shows a step by step process which might be helpful for people who are just starting with lambda calculus.



                                            link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=928503408&mt=8






                                            share|cite|improve this answer











                                            $endgroup$


















                                              4












                                              $begingroup$

                                              I found this iPhone app that works as an un-typed lambda calculator, it works with successor, addition, addition with successor, multiplication, exponentiation, predecessor and subtraction operations. It shows a step by step process which might be helpful for people who are just starting with lambda calculus.



                                              link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=928503408&mt=8






                                              share|cite|improve this answer











                                              $endgroup$
















                                                4












                                                4








                                                4





                                                $begingroup$

                                                I found this iPhone app that works as an un-typed lambda calculator, it works with successor, addition, addition with successor, multiplication, exponentiation, predecessor and subtraction operations. It shows a step by step process which might be helpful for people who are just starting with lambda calculus.



                                                link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=928503408&mt=8






                                                share|cite|improve this answer











                                                $endgroup$



                                                I found this iPhone app that works as an un-typed lambda calculator, it works with successor, addition, addition with successor, multiplication, exponentiation, predecessor and subtraction operations. It shows a step by step process which might be helpful for people who are just starting with lambda calculus.



                                                link: https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=928503408&mt=8







                                                share|cite|improve this answer














                                                share|cite|improve this answer



                                                share|cite|improve this answer








                                                answered Oct 14 '14 at 16:21


























                                                community wiki





                                                NugSoth
























                                                    1












                                                    $begingroup$

                                                    Some time ago, I was surprised not to find many untyped & simply-typed lambda calculus interpreters among the answers to this question, so I started working for a while in an educational lambda calculus interpreter called Mikrokosmos (can also be used online). It implements untyped and simply typed lambda calculus (and also illustrates Curry-Howard).



                                                    Surely, you could also use some functional programming language; but at least for me, it was difficult to determine exactly which constructs of the language are lambda calculus and which are extras offered by that particular language. Haskell for instance approximately implements System-F, but I also wanted to have a simply(as simple as possible)-typed lambda calculus interpreter.



                                                    The interpreter is free software and you can integrate them on other learning materials (such as Jupyter notebooks or web pages). I have used it before to teach lambda calculus to CS students.



                                                    Please note that I am the main developer of this interpreter. I am only posting here because this same question inspired me to start the development.






                                                    share|cite|improve this answer











                                                    $endgroup$


















                                                      1












                                                      $begingroup$

                                                      Some time ago, I was surprised not to find many untyped & simply-typed lambda calculus interpreters among the answers to this question, so I started working for a while in an educational lambda calculus interpreter called Mikrokosmos (can also be used online). It implements untyped and simply typed lambda calculus (and also illustrates Curry-Howard).



                                                      Surely, you could also use some functional programming language; but at least for me, it was difficult to determine exactly which constructs of the language are lambda calculus and which are extras offered by that particular language. Haskell for instance approximately implements System-F, but I also wanted to have a simply(as simple as possible)-typed lambda calculus interpreter.



                                                      The interpreter is free software and you can integrate them on other learning materials (such as Jupyter notebooks or web pages). I have used it before to teach lambda calculus to CS students.



                                                      Please note that I am the main developer of this interpreter. I am only posting here because this same question inspired me to start the development.






                                                      share|cite|improve this answer











                                                      $endgroup$
















                                                        1












                                                        1








                                                        1





                                                        $begingroup$

                                                        Some time ago, I was surprised not to find many untyped & simply-typed lambda calculus interpreters among the answers to this question, so I started working for a while in an educational lambda calculus interpreter called Mikrokosmos (can also be used online). It implements untyped and simply typed lambda calculus (and also illustrates Curry-Howard).



                                                        Surely, you could also use some functional programming language; but at least for me, it was difficult to determine exactly which constructs of the language are lambda calculus and which are extras offered by that particular language. Haskell for instance approximately implements System-F, but I also wanted to have a simply(as simple as possible)-typed lambda calculus interpreter.



                                                        The interpreter is free software and you can integrate them on other learning materials (such as Jupyter notebooks or web pages). I have used it before to teach lambda calculus to CS students.



                                                        Please note that I am the main developer of this interpreter. I am only posting here because this same question inspired me to start the development.






                                                        share|cite|improve this answer











                                                        $endgroup$



                                                        Some time ago, I was surprised not to find many untyped & simply-typed lambda calculus interpreters among the answers to this question, so I started working for a while in an educational lambda calculus interpreter called Mikrokosmos (can also be used online). It implements untyped and simply typed lambda calculus (and also illustrates Curry-Howard).



                                                        Surely, you could also use some functional programming language; but at least for me, it was difficult to determine exactly which constructs of the language are lambda calculus and which are extras offered by that particular language. Haskell for instance approximately implements System-F, but I also wanted to have a simply(as simple as possible)-typed lambda calculus interpreter.



                                                        The interpreter is free software and you can integrate them on other learning materials (such as Jupyter notebooks or web pages). I have used it before to teach lambda calculus to CS students.



                                                        Please note that I am the main developer of this interpreter. I am only posting here because this same question inspired me to start the development.







                                                        share|cite|improve this answer














                                                        share|cite|improve this answer



                                                        share|cite|improve this answer








                                                        answered Oct 28 '18 at 20:55


























                                                        community wiki





                                                        Mario Román































                                                            draft saved

                                                            draft discarded




















































                                                            Thanks for contributing an answer to Mathematics Stack Exchange!


                                                            • Please be sure to answer the question. Provide details and share your research!

                                                            But avoid



                                                            • Asking for help, clarification, or responding to other answers.

                                                            • Making statements based on opinion; back them up with references or personal experience.


                                                            Use MathJax to format equations. MathJax reference.


                                                            To learn more, see our tips on writing great answers.




                                                            draft saved


                                                            draft discarded














                                                            StackExchange.ready(
                                                            function () {
                                                            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f967%2flearning-lambda-calculus%23new-answer', 'question_page');
                                                            }
                                                            );

                                                            Post as a guest















                                                            Required, but never shown





















































                                                            Required, but never shown














                                                            Required, but never shown












                                                            Required, but never shown







                                                            Required, but never shown

































                                                            Required, but never shown














                                                            Required, but never shown












                                                            Required, but never shown







                                                            Required, but never shown







                                                            Popular posts from this blog

                                                            How do I know what Microsoft account the skydrive app is syncing to?

                                                            Grease: Live!

                                                            When does type information flow backwards in C++?