{Begin SubSec English Phrases}
{Title English Phrases}
{Text

{Begin Note}
Date:  4 JUL 1982 1550-PDT
From: MASINTER
Subject: CLISPIFYENGLISH removed
To:   lisp

The system will no longer attempt to turn Lisp into Clisp-English,
even if CLISPIFYENGLSHFLG is T.

DWIMIFY of clisp-english is still supported.
{End Note}


{Label L!2320}
{index english phrases in clisp}
CLISP also recognizes a limited but expandable set of english-like
constructions of the form "A is B", e.g., {lisp FOO IS A NUMBER}, {lisp Z IS NOT A STRING}, {lisp (CDDR X) ISN'T A TAIL OF Y}.
Both subject and relation can be "distributed", e.g., {lisp X AND Y ARE ATOMIC} is equivalent to {lisp X IS ATOMIC AND Y IS ATOMIC}.
Similarly, {lisp Z IS AN ARRAY OR A LIST} is equivalent to {lisp Z IS AN ARRAY OR Z IS A LIST}, and {lisp A AND B ARE NUMBERS AND LESS THAN 5 AND GT 0} is equivalent to the conjunction of the indicated six predicates.
These constructions are translated to the corresponding LISP expressions when they are run or dwimified.  In addition, {fn CLISPIFY} will convert LISP forms into "english" when {var CLISPIFYENGLSHFLG}{index CLISPIFYENGLSHFLG CLV} is {lisp T}.


CLISP currently knows about the following unary relations in their singular and plural forms:
{lisp ARRAY}, {lisp ATOM}, {lisp ATOMIC}, {lisp FLOATING POINT NUMBER}, {lisp LIST}, {lisp LITATOM}, {lisp LITERAL ATOM}, {lisp NEGATIVE}, {lisp NIL} (i.e., {lisp X IS NIL}), {lisp NULL}, {lisp NUMBER}, {lisp SMALL INTEGER}, {lisp SMALL NUMBER}, {lisp STRING};
and the following binary relations in their singular and plural forms:
{lisp EQ TO}, {lisp EQUAL TO}, {lisp GEQ}, {lisp GREATER THAN}, {lisp GT}, {lisp LESS THAN}, {lisp LT}, {lisp MEMB OF}, {lisp MEMBER OF}, {lisp TAIL OF}.
All relationships can be negated with either {lisp NOT}, {lisp N}, or {lisp N'T}, e.g., {lisp X IS ~LESS THEN Y, A AND B AREN'T ATOMIC}.
New relations can be defined via the function {fn NEWISWORD}.



{FnDef {FnName NEWISWORD} {FnArgs SING PLU FORM VARS}
{Text
{arg SING} is the singular form of the new english construct, {arg PLU} the plural without the subject.  {arg FORM} is the form the singular construct translates to, and {arg VARS} the parameters.
}}


For example, "{lisp SMALL INTEGER}" could be defined by
{lisp (NEWISWORD '(X IS A SMALL INTEGER) '(ARE SMALL INTEGERS) '(SMALLP X) '(X))}
and "{lisp TAIL OF}" by
{lisp (NEWISWORD '(X IS A TAIL OF Y) '(ARE TAILS OF Y) '(TAILP X Y) '(X Y))}

}{End SubSec English Phrases}