Common LISP had CLOS that implemented object-oriented programming in a style not too different from Python, but as a library without compiler support and that was also true for late 1980s FORTH.
Common LISP had CLOS that implemented object-oriented programming in a style not too different from Python, but as a library without compiler support and that was also true for late 1980s FORTH.
I'm not sure what you mean by this;As part of CL, CLOS always had compiler (and run time compiler) support.
Many early OO systems were implemented in lisps, partially because they are flexible enough to add language features reasonably well, by default. See, e.g. Flavors, Loops. These predate CL and influenced the design of CLOS.
The quote operator cannot be used for writing control structures in Lisp, unless we are referring to something you generally should not do in production code, like:
(defun meta-circular-if (cond then else)
(if (eval cond) (eval then) (eval else)))
(meta-circular-if (quote (> 3 2)) (quote (+ 4 4)) 0)
Quoting is nothing like referring to Forth words as data. When Forth code refers to a Forth word foo, that's more like (function foo) than (quote foo).I'm not sure this is what they had in mind, but I've actually done pretty much this when bootstrapping. Eg:
(def (do-if cond) # actually a built-in, but defined this way
(if cond id quote))
((do-if tee) (foo)) # (id (foo))
((do-if nil) (bar)) # (quote (bar))