diff --git a/bugs.html b/bugs.html index c2858a914..1ad118407 100644 --- a/bugs.html +++ b/bugs.html @@ -2287,33 +2287,34 @@ does not exist.

Source code: 2005/mikeash/mikeash.c

Information: 2005/mikeash/index.html

The author states:

- -

Basically, the [LISP][] interpreter is good for some basic math operations, and +Turing-complete.

+

Basically, the LISP interpreter is good for some basic math operations, and for running itself.

+

2005/mynx

diff --git a/bugs.md b/bugs.md index ba50a7c93..59438ce45 100644 --- a/bugs.md +++ b/bugs.md @@ -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 `/`.
+> +> 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, `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.
+> +> 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.
+> +> 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 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.
+> +> 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 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).
+> +> Basically, the LISP interpreter is good for some basic math operations, and for running itself.