~rhcarvalho/+junk/racket

« back to all changes in this revision

Viewing changes to lambda-calculus-if.rkt

  • Committer: Rodolfo Carvalho
  • Date: 2013-05-22 07:48:28 UTC
  • Revision ID: rhcarvalho@gmail.com-20130522074828-wd9jrnspq4ce6eoc
Add files from Feb 2012.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#lang racket
 
2
(define true (λ (x y) x))
 
3
(define false (λ (x y) y))
 
4
 
 
5
(define λ-if
 
6
  (λ (cond true-λ-term false-λ-term)
 
7
    ((cond true-λ-term false-λ-term))))
 
8
 
 
9
(define display-boolean
 
10
  (λ (boolean)
 
11
    (λ-if boolean (λ () (displayln "ok")) (λ () (displayln "fail")))))
 
12
 
 
13
(display-boolean false)
 
14
 
 
15
(define not (λ (x) (x false true)))
 
16
 
 
17
(display-boolean (not false))
 
18
 
 
19
(define and (λ (a b) (a b a)))
 
20
 
 
21
(display-boolean (and true true)) ; true
 
22
(display-boolean (and true false)) ; false
 
23
(display-boolean (and false true)) ; false
 
24
(display-boolean (and false false)) ; false
 
 
b'\\ No newline at end of file'