Skip to content

Instantly share code, notes, and snippets.

@SYZYGY-DEV333
Created April 8, 2019 19:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SYZYGY-DEV333/f5ea4c88f451d7017f6583f2f4ba2194 to your computer and use it in GitHub Desktop.
Save SYZYGY-DEV333/f5ea4c88f451d7017f6583f2f4ba2194 to your computer and use it in GitHub Desktop.
Lambda Calculus to SKI
(define (lambda-to-ski f)
(match f
[`(lambda (,a) (lambda (,b) ,c)) (lambda-to-ski `(lambda (,a) ,(lambda-to-ski `(lambda (,b) ,c))))]
[`(lambda (,a) (,exp1 ,exp2)) `((s ,(lambda-to-ski `(lambda (,a) ,exp1))) ,(lambda-to-ski `(lambda (,a) ,exp2)))]
[`(lambda (,a) ,a) 'i]
[`(lambda (,a) ,b) `(k ,(lambda-to-ski b))]
[`(,a ,b) `(,(lambda-to-ski a) ,(lambda-to-ski b))]
[_ f]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment