X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=rosetta1.mdwn;h=1c603674294c62db7f6db355c6cb9b41799f5fd5;hp=0a09c7c9f7771fed33da50c62f5371fb8e578d84;hb=58af930a36d62c3830557a8b17e100f2ac53181e;hpb=31f42994cba519b4f3299cb7f85744e49b295f05 diff --git a/rosetta1.mdwn b/rosetta1.mdwn index 0a09c7c9..1c603674 100644 --- a/rosetta1.mdwn +++ b/rosetta1.mdwn @@ -78,7 +78,7 @@ These relations are written in Haskell and OCaml as `&&`, `||`, and `not`. (Hask The values that are written `'true` and `'false` in Kapulet are written in Haskell as `True` and `False`, and in OCaml as just `true` and `false`. (It'd be more consistent with OCaml's other naming policies for them to have said True and False, but they didn't.) These are written `#t` and `#f` in Scheme, but in Scheme in many contexts any value that isn't `#f` will behave as though it were `#t`, even values you might think are more "false-like", like `0` and the empty list. Thus `(if 0 'zero 'nope)` will evaluate to `'zero`. -Some Scheme implementations, such as Racket, permit `#true` and `#false` as synonyms for `#t` and `#f`. +Some Scheme implementations, such as Racket, permit `#true` and `#false` as synonyms for `#t` and `#f`. (These aliases are also mandated in "version 7", r7rs, of the Scheme standard.) Scheme also recognizes the values `'true` and `'false`, but it treats `'false` as distinct from `#f`, and thus as a "truth-like" value, like all of its other values that aren't `#f`. Kapulet essentially took Scheme's `boolean` values and collapsed them into being a subtype of its `symbol` values.