PasteRack.org | ||
Paste # 55873 | ||
2020-03-29 21:22:25 | ||
Fork as a new paste. | ||
Paste viewed 398 times. | ||
Tweet | ||
Embed: | ||
#lang br/quicklang (define (read-syntax path port) (define src-lines (filter non-empty-string? (port->lines port))) (define src-datums (format-datums '~a src-lines)) (define module-datum `(module stacker-mod "funstacker.rkt" ',src-datums)) (datum->syntax #f module-datum)) (provide read-syntax) (define-macro (stacker-module-begin HANDLE-ARGS-EXPR) #'(#%module-begin (display HANDLE-ARGS-EXPR))) (provide (rename-out [stacker-module-begin #%module-begin])) (define (handle-args . args) (for/fold ([stack-acc empty]) ([arg (in-list args)]) (cond [(number? arg) (cons arg stack-acc)] [(or (equal? * arg) (equal? + arg)) (define op-result (arg (first stack-acc) (second stack-acc))) (cons op-result (drop stack-acc 2))]))) (provide handle-args) (provide + * quote list)