PureLISP.js
, with same specification of
PureLISP.sh
; Scheme-style sample code (def list (lambda x x)) (def define (macro (name . body) (cond ((atom name) (list 'def name (car body))) (t (list 'def (car name) (list 'lambda (cdr name) (car body))))))) (def define-macro (macro (name . body) (list 'def (car name) (list 'macro (cdr name) (car body))))) (define eq? eq) (define else t) (define (f x y) (cond ((eq? x '()) y) (else (f (cdr x) (cons (car x) y))))) (define-macro (g x y) (list 'f (list 'f x '(quote ())) y)) (g '(x y z) '(a b c))
Result:
Copyright (C) 2020-2021
TAKIZAWA Yozo