Mixing common lisp and scheme.

ET emergent@eval-apply.com
Tue, 3 Jun 1997 09:06:55 -0400


I said: It would be difficult to *mix* T and
   Common Lisp, however.

Scott asked: Why is that?

Mostly because Common Lisp has separate namespaces for
functions and variables.  If you wrote this in Common Lisp:

(defvar foo (function (lambda () 'bar)))

(defun foo () 'foo)

What would this Scheme expression eval to?
(foo)

However, if you keep Scheme and Common Lisp separate,
I imagine that you could do this:

(cl-function foo) --> retrieves the function cell of foo
(set-cl-function! foo ...)

(cl-var foo)
(set-cl-var! foo ...)

and on the CL side:

(scheme-value foo)
(setf (scheme-value foo) ...)

This is the easiest example that comes to mind.

Someone also mentioned this reference:
For a long discussion about the difficulty (but tractability) of
implementing Lisp on top of Scheme, see the Guile mailing list
archives at <A
HREF="http://www.cyclic.com/guile/">http://www.cyclic.com/guile/</A>.