PasteRack.org | ||
Paste # 9376 | ||
2025-06-17 21:11:11 | ||
Fork as a new paste. | ||
Paste viewed 838 times. | ||
Tweet | ||
Embed: | ||
=>
'(module foo racket/base
(module configure-runtime '#%kernel (#%require racket/runtime-config) (configure '#f))
(define-values
(struct:foo foo1 foo? foo-bar)
(let-values (((struct: make- ? -ref -set!)
(let ()
(let () (make-struct-type 'foo '#f '1 '0 '#f null '#f '#f '(0) '#f 'foo)))))
(values struct: make- ? (make-struct-field-accessor -ref '0 'bar))))
(define-syntax foo
(make-self-ctor-checked-struct-info
(lambda ()
(list
(quote-syntax struct:foo)
(quote-syntax foo)
(quote-syntax foo?)
(list (quote-syntax foo-bar))
(list '#f)
'#t))
'(bar)
(list (list) (list))
(lambda () (quote-syntax foo1))))
(define fact (lambda (n) (if (zero? n) '1 (* n (fact (- n '1))))))
(call-with-values (lambda () (foo1 (fact '5))) print-values))