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

CALL



We could also eliminate the confusion between keywords and procedure calls
by introducing a new keyword CALL, that would be used to indicate a
combination:

  (DEFINE (FACT N)
    (IF (CALL < N 2)
	1
	(CALL * N (CALL FACT (CALL - N 1)))))

To further strain your brains I recall an idea that Bill Rozas (I think)
once had.  He suggested that instead of putting the keyword or procedure in
the CAR of an expression, we could use the CADR.  Then we might have (with
renamings appropriate for infix keywords):

  ((N FACT) IS
    ((N < 2) THEN
	     1	
	     (N * ((N - 1) FACT))))

Seriously, as long as you can -statically- determine what identifiers are
keywords, I don't see any reason to change the language.