This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: difficulty of writing translators



> Why wouldn't this take the form of a foreign function interface?

You're glossing over a lot of interesting issues with that phrase.

For example: if I write an Emacs Lisp function that returns a list
structure, and I call that function from Scheme, do I make a copy of
that list structure?

It seems rather a pity to make Emacs Lisp/Scheme calling so expensive
because of such small areas of conflict.

A pair in Lisp world should be a pair in Scheme world.  A Lisp list
should be a Scheme list.  The same should go for vectors, symbols, and
numbers.  Characters are more difficult.

It's impossible to do the equivalences above without introducing some
oddities (in eq and eq? in particular).  However, you can choose where
the oddities occur, and put them in rarely used corners of the
semantics.  And most importantly, you can make sure they arise only
when you mix languages, so Scheme and Emacs Lisp will be correct when
used in exclusion.

I had this all written down somewhere...