Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!think.com!snorkelwacker.mit.edu!news.media.mit.edu!news.media.mit.edu!alanr From: alanr@chopin.media-lab.media.mit.edu (Alan Ruttenberg) Newsgroups: comp.lang.lisp Subject: scope question Message-ID: Date: 14 Jun 91 17:28:52 GMT Sender: news@news.media.mit.edu (USENET News System) Organization: MIT Media Laboratory Lines: 18 I have a question about the interaction of flet and macrolet. (defun foo () ''outside) (flet ((foo () ''inside)) (macrolet ((bar () (foo))) (bar))) Should this return a) 'outside b) 'inside c) signal an error I've convinced myself that it shouldn't return 'inside. Reasoning: Flet binds, at run time, the local function foo. Macrolet is expanded at compile time, so the function is not yet available. If one writes instead (flet ((foo () ''inside)) (macrolet ((bar () '(foo))) (bar))), then it makes sense to return 'inside. But I'm not sure about whether it should return 'outside. I vote yes, and a friend votes no. -alan