1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-21 12:10:26 +02:00

Name anonymous let- or letrec-bound procedures

* module/language/scheme/compile-ghil.scm (let, letrec): Give names to
  procedures of the form (let ((foo (lambda ....)))).
This commit is contained in:
Andy Wingo 2009-02-02 23:36:14 +01:00
parent e311f5fa04
commit e94ecc68c2

View file

@ -248,7 +248,9 @@
;; (let ((SYM VAL) ...) BODY...)
((,bindings . ,body) (guard (valid-bindings? bindings))
(let ((vals (map retrans (map cadr bindings))))
(let ((vals (map (lambda (b)
(maybe-name-value! (retrans (cadr b)) (car b)))
bindings)))
(call-with-ghil-bindings e (map car bindings)
(lambda (vars)
(make-ghil-bind e l vars vals (trans-body e l body)))))))
@ -265,7 +267,10 @@
((,bindings . ,body) (guard (valid-bindings? bindings))
(call-with-ghil-bindings e (map car bindings)
(lambda (vars)
(let ((vals (map retrans (map cadr bindings))))
(let ((vals (map (lambda (b)
(maybe-name-value!
(retrans (cadr b)) (car b)))
bindings)))
(make-ghil-bind e l vars vals (trans-body e l body)))))))
(define-scheme-translator cond