symbolic.tex 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. \section{Symbolic Mode}
  2. \begin{Operator}{EQ}
  3. \begin{Syntax}
  4. \meta{expression} \name{eq} \meta{expression}
  5. \end{Syntax}
  6. \name{eq} is an infix binary comparison operator that returns {\em true\/}
  7. if the first expression points to the same object as the second. Users
  8. should be completely familiar with the concept of Lisp pointers and their
  9. comparison before using this operator.
  10. \begin{Comments}
  11. \name{eq} is {\em not\/}
  12. a reliable comparison between numeric arguments.
  13. \end{Comments}
  14. \end{Operator}
  15. \begin{Switch}{FASTFOR}
  16. The switch \name{fastfor} causes \nameref{for} loops to use so-called
  17. ``inum'' arithmetic in which simple arithmetic operations, such as
  18. updating operations on the looping variable, are replaced by machine
  19. operations.
  20. \begin{Comments}
  21. This switch should be used with care. Only code that is compiled should
  22. utilize its effect, since some of the operations used are not supported
  23. in interpreted mode. It is also the user's responsibility to ensure that
  24. the arithmetic operations are within the appropriate range, since no
  25. overflow is checked.
  26. \end{Comments}
  27. \end{Switch}
  28. \begin{Operator}{MEMQ}
  29. \begin{Syntax}
  30. \meta{expression} \name{memq} \meta{list}
  31. \end{Syntax}
  32. \name{member} is an infix binary comparison operator that evaluates to
  33. {\em true\/} if \meta{expression} is a \nameref{eq} to any member of
  34. \meta{list}.
  35. \begin{Examples}
  36. if 'a memq {'a,'b} then 1 else 0; & 1 \\
  37. if '(a) memq {'(a),'(b)} then 1 else 0; & 0
  38. \end{Examples}
  39. \begin{Comments}
  40. Since \name{eq} is not a reliable comparison between numeric arguments,
  41. one can't be sure that 1 for example is \name{memq} the list
  42. \name{\{1,2\}}.
  43. \end{Comments}
  44. \end{Operator}