Skip to content

Instantly share code, notes, and snippets.

@dyln
dyln / racket.rkt
Last active February 24, 2016 13:46
entire racket file for uniary minus
#lang plai-typed
;;data def
(define-type FBAPE-expressions
[numC (n : number)]
[plusC (l : FBAPE-expressions) (r : FBAPE-expressions)]
[subC (l : FBAPE-expressions) (r : FBAPE-expressions)]
[multC (l : FBAPE-expressions) (r : FBAPE-expressions)]
[expC (l : FBAPE-expressions) (r : FBAPE-expressions)]
; [grtrZeroC (a : FBAPE-expressions) (b : FBAPE-expressions) (c : FBAPE-expressions)]
@dyln
dyln / racket.rkt
Created February 23, 2016 10:00
parser
(define (parse [s : s-expression]) : FBAPEsug
(cond [(s-exp-number? s) (numS (s-exp->number s))]
[(s-exp-list? s)
(let ([sl (s-exp->list s)])
(cond [(= length sl 3)
(case (s-exp->symbol (first sl))
[(+) (plusS (parse (second sl)) (parse (third sl)))]
[(*) (multS (parse (second sl)) (parse (third sl)))]
[(-) (bminusS (parse (second sl)) (parse (third sl)))]
[(**) (expS (parse (second sl)) (parse (third sl)))]