davidson (04/27/83)
From: Greg Davidson <sdcsvax!davidson> Don't be mislead by the simple but ugly syntax of LISP. Most LISPs have macros which allow users to specify arbitrary syntax for their functions quite easily. The default syntax, called Cambridge Prefix, is used so much because it (1) is VERY easy to learn, and (2) maintains the clear correspondence between CODE & DATA. Let me give an example of the latter which pertains to editors. A frequent LISP programming technique is to have functions which write new functions, and this is particularly valuable in programs such as editors which need to be significantly reconfigured for each terminal. Non-LISP based terminal-independent code spends lots of time interpreting tables. A LISPish way to do this is to specify terminal functions with S-expressions (much clearer than TERMCAP entries), & have the editor create the appropriate driver on the fly (& make it available for compilation). The quality of a LISP environment is heavily affected by various details of the environment. For example, binding strategies, which have been discussed somewhat on this list before, are very important. Macros are a second important characteristic. If anyone is seriously planning on implementing a new LISP for an editor language, send me a note & I'll point you at some appropriate documentation. There is one kind of language that I think is superior to LISP as the basis for an editor, and that is an Object-oriented language, such as Smalltalk-80 or FLAVORS. The latter language is based on LISP, though, so you can have the best of both worlds (though FLAVORS itself is probably far too complicated, as is MACLISP, for such an application). -Greg internet: davidson@nosc uucp: ...!sdcsvax!davidson