A successful lisp machine?
Fri, 2 May 1997 15:37:04 +0200
lr> >I'd prefer a small LISP package providing basic typesetting functions.
lr> Yes, the TeX language is horrible, but re-writing TeX is a bigger
lr> project than writing LispOS!
Don't quite think so. Plain TeX itself knows about 300 primitives, plus
600 standard macros. Quite some of them would become obsolete in a LISP
environment. (Simply think of all that kludgy TeX arith stuff. Once
implemented sin() for it. Horrible that was!)
I think I consciently use only about three dozens of TeX's commands.
LaTeX on the other hand is nothing else but the feeble attempt to make
TeX look like just another typesetting system, namely "scribe".
(I don't like LaTeX, btw. And I don't use it.)
Besides the fact that it already seems to have been done, that
presumably would not be as much effort as you fear.
lr> OTOH, putting a Lisp interface *on top of* TeX is is a pretty small,
lr> pretty easy project. We can have our cake and eat it too!
Writing LISP code that writes TeX code? I've done that in the past
(but for very special applications only). From my experience, I think
this is quite unsatisfactory in many aspects. I can go into detail if you
See it that way: implementing a typesetting system in LISP would not
result in a black-box you can typeset text with, but in lots
of functions that are also usable in different places. Imagine having a
hyphenating algorithm at hand whenever you need it, instead of knowing
there is a perfect one which you can't use because it's buried deeply
within a program. Or think of the line-breaking algorithm of TeX.
This is based upon some more abstract (and in many ways very useful)
graph algorithm. With a language which doesn't support functional
programming, such as C, it's usually unfeasible to implement an abstract
algorithm and then provide it with additional information so that it fits
your needs. With a functional language, where you have closures, however,
this is quite natural.
Of course, all this is not an OS issue.
regards, Thomas Fischbacher - firstname.lastname@example.org