[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nested class definitions



Common Lisp has taken the view that while there are local functions with
FLET /LABELS and local macros with MACROLET, there aren't any local
structures.    Lets suppose we had something like structure-let:

(structure-let (((foo (:type list)) a b c)
		  (baz x y z))
     (setq kk (make-baz ...))
     (baz-x kk)

    ...)

This certainly makes sense for (:type list) because it doesn't entail
any global data-type-space manipulation, but makes less sense for
structures & classes? In a recursive call, are the types the same
because they share names? Or different? 

In

(let ((c (make 'class ...)))
	(add-method ....)

	...)

you clearly have a dynamic scope the class and its methods. However,
most languages that have "local types" use a lexical scope instead. How
can we get lexically scoped classes?