abdllah.dev
← Home

Lambda Calculus For All: Part 0 - Church Booleans

Published on 2 min read

A motivation tutorial for lambda calculus

If you are reading this post you are probably a programmer. You might be a beginner or a professional programmer but most likely you are an imperative programmer. In this post, I will try to motivate you why lambda calculus is interesting and how it is important.

                
              
                
              
                type 'a boolean = 'a -> 'a -> 'a
              
            

              
                
              
            

              
                let true' : 'a boolean = fun t _ -> t
              
            

              
                let false' : 'a boolean = fun _ f -> f
              
            

              
                
              
            

              
                let ( && ) (x : 'a boolean) (y : 'a boolean) : 'a boolean =
              
            

              
                  fun t f -> x (y t f) f
              
            

              
                
              
            

              
                let ( || ) (x : 'a boolean) (y : 'a boolean) : 'a boolean =
              
            

              
                  fun t f -> x t (y t f)
              
            

              
                
              
            

              
                let ( ! ) (x : 'a boolean) : 'a boolean = fun t f -> x f t