L7YV2TJYOBRNUT7FPSY352O3BPZD7CNO3XG7PY433L54XYBY5AZQC
CSYWOT2I424JQUSOH4DB6UNOOHMB5FOA5B7AY4CE45EQORRB4LWAC
UW27LKXM2BJ77FQLTY4WPKDSSWI2RFNFRJ7CB4U3TS7KYVIV72LQC
PXI442CY2KQHHAIJ3UNCWKTAI4IFYNGYEBRQMDR6T53YZTY2VMMQC
A2JAXDJWT2FAKADYOY6QOQ7LQRMTTCDIOYT7STSESVHLZQEQJBMAC
lisp_eval_should_be '(let* () 5)' '5' 'let* with nothing'lisp_eval_should_be '(let* ((x 1)) x)' '1' 'let* with one thing, not special'lisp_eval_should_be '(let* ((x 1) (y (+ 1 x))) y)' '2' 'let* with two things where order matters'
lisp_eval_should_be '(let* () 5)' '5' 'let* with nothing'
lisp_eval_should_be '(let* ((x 1)) x)' '1' 'let* with one thing, not special'
lisp_eval_should_be '(let* ((x 1) (y (+ 1 x))) y)' '2' 'let* with two things where order matters'
(macro let* (lambda (a) \ (cond ((null (car a)) `(progn ,@(cdr a))) \ (true `(let (,(caar a)) \ (let* ,(cdar a) \ ,@(cdr a))))))) \
(macro let* (lambda (a) \
(cond ((null (car a)) `(progn ,@(cdr a))) \
(true `(let (,(caar a)) \
(let* ,(cdar a) \
,@(cdr a))))))) \