Fix bugs.html for 2005/mikeash

This commit is contained in:
Cody Boone Ferguson committed 2024-08-28 15:25:27 -07:00
1 parent 05097e41d6
commit 870d6628eb
2 files changed
+52 -50

No files matched your search

+30 -29
View File
@@ -2758,40 +2758,41 @@ This entry requires that `sed` and `make` are in your `$PATH`.
The author states:
* The only built-in functions are `defvar`, `format`, `substitute`,
`char-upcase`, `+`, `-`, `*`, and `/`.
* Only one variable is available. This variable is called `q`, although any
symbol name starting with the letter `q` will be mapped to this variable.
* Only the first letter of a function name is significant. For example,
> The only built-in functions are `defvar`, `format`, `substitute`,
`char-upcase`, `+`, `-`, `*`, and `/`.<br>
>
> Only one variable is available. This variable is called `q`, although any
symbol name starting with the letter `q` will be mapped to this variable.<br>
>
> Only the first letter of a function name is significant. For example,
`format`, `f`, `farm`, and various other words starting with `f` will all map to
the `format` function.
* The `defvar` function completely ignores its first parameter. It will always
the `format` function.<br>
>
> The `defvar` function completely ignores its first parameter. It will always
store the result of evaluating its second parameter in `q`. Unlike in [Common
Lisp](https://en.wikipedia.org/wiki/Common_Lisp), multiple invocations of
`defvar` on the same variable will overwrite old values.
* Character constants are limited to `#\Newline` and single-character
constants such as `#\x`.
* The `char-upcase` function will give strange results if passed something
other than a lowercase character.
* The `format` function takes exactly three parameters. The first parameter is
`defvar` on the same variable will overwrite old values.<br>
>
> Character constants are limited to `#\Newline` and single-character constants
such as `#\x`.<br>
>
> The `char-upcase` function will give strange results if passed something other
than a lowercase character.<br>
>
> The `format` function takes exactly three parameters. The first parameter is
ignored; output always goes to `stdout`. The second parameter must have exactly
one `~s` format specifier in it, and no other format specifiers are permitted.
* The arithmetic functions take exactly two parameters.
* All tokens must be separated from a following `)` by whitespace.
* A lot of other things. Notably, the language which this program interprets is
one `~s` format specifier in it, and no other format specifiers are
permitted.<br>
>
> The arithmetic functions take exactly two parameters.<br>
>
> All tokens must be separated from a following `)` by whitespace.<br>
>
> A lot of other things. Notably, the language which this program interprets is
nowhere near
[Turing-complete](https://en.wikipedia.org/wiki/Turing_completeness).
Basically, the [LISP][] interpreter is good for some basic math operations, and
[Turing-complete](https://en.wikipedia.org/wiki/Turing_completeness).<br>
>
> Basically, the LISP interpreter is good for some basic math operations, and
for running itself.