Skip to content

Instantly share code, notes, and snippets.

@pbl64k
pbl64k / tree.rkt
Last active August 29, 2015 14:19
Binary trees as their own folds in untyped lambda calculus (by way of Scheme)
#lang scheme
(define I (lambda (x) x))
(define K (lambda (x) (lambda (y) x)))
(define bool-true K)
(define bool-false (K I))
(define bool-to-native (lambda (b) ((b #t) #f)))
(define maybe-nothing K)
(define maybe-just (lambda (x) (lambda (c) (lambda (f) (f x)))))
(define maybe-to-value-with-default (lambda (def) (lambda (m) ((m def) I))))