[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Spelling correction



    Date: Mon 20 Jan 86 09:48:22-PST
    From: Rene Bach <BACH@SU-SCORE.ARPA>


    I am new on this list (please forgive me if this topic has been discussed
    already).

    It has been our experience that using the spelling correction facilities
    provided by Interlisp are very useful to provide nice user interfaces.
    It is also my belief that to do flexible symbol matching requires
    spelling correction.

    My question is: why doesn't CL include a specification for a spelling
    correction function. The description of the Interlisp functions could be
    used as specification for the I/O. The choice of the algorithm could
    be left open.

Base my following reaction on never having used Interlisp but only heard
about it and some of its 'features.'

The only 'spelling corrector' I've heard of in Interlisp is a DWIM
facility to change the name of variables out from under you because you
mistyped them.  I don't believe in that kind of programming, since that
will, among other things, hide bugs that will resurface indefinitely
later if you happen to name a variable the same as your previous
misspelling.  Errors should be signalled.  DWIMing is a function of the
application program only (provided CL had an error system to deal with
errors) and is not a function of the system itself.  For example, if I
mistyped
	*BAX*
when I meant
	*BAZ*
I want an error.  Someday I may legally define *BAX*.

[Shift to programming enviroments...]  I also make use of the compiler
to tell me when variables are unknown and declared special (which is the
most common manifestation of my misspellings) and functions being called
that aren't defined.

If there is a spelling corrector of this type, it should be integrated
into the system at the user-interface level, which is probably out of
bounds for CLtL.