[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lispy vs Pseudo-English Syntax
I'd say that a strong argument for LOOP, in addition to its use by some
current MacLisp/LispM people, is that it reflects quite well the
capabilities and syntax of Interlisp's I.S.OPRS; and those potential
CommonLisp users with some Interlisp experience will find it quite
comfortable. Not to be overlooked is the fact that I.S.OPRS has had
over a decade of life in the Interlisp community, and is "dearly loved"
there; many other CLISPisms have not passed the test of time so well.
This brings up another point -- your suggestion to support both
syntaxes. I don't think there is any technical conflict to doing so.
In fact, I'd rather see such a mandate broadened to treat IF in the same
way that Franz did; namely:
(if (test) A B)
is expressed in Interlisp form as
(if (test)
then A
else B)
What the Franz folks noticed is that the only conflict between the two
is when one wants to return a variable whose name is "then" or "else".
So their IF macro accepts both forms, presumably just "biting the
bullet" on "then" and "else". I personally find "elseif" useful too:
(cond (p1 ...e1) (p2 ...e2) . . . (pn ...en))
becomes
(if p1
then ...e1
elseif p2
then ...e2
. . .
elseif pn
then ...en)
As to one's personal stylistic preference for syntax -- well, one man's
meat is another's poison. But in defense of the expanded "if" over
"cond", more 2-dimensional prettyprinting as opposed to "dense" code,
and keyword-driven parsing ocasionally dispensing with parentheses, one
can point to many vanilla computer languages that take on these more
"familiar" names and styles *without making any pretensions to being
'english-like'*. (C comes to mind, even though is is probably the worst
of all such examples!).
-- JonL --