doc-src/MacroHints
author wenzelm
Thu, 11 Nov 1993 10:05:17 +0100
changeset 107 b4a8dabc7313
parent 106 7a5d207e6151
child 137 ad5414f5540c
permissions -rw-r--r--
replaced by current version;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     1
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     2
Hints
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     3
=====
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     4
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
     5
22-Oct-1993 MMW
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
     6
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
     7
Some things notable, but not (yet?) covered by the manual.
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     8
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
     9
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    10
- constants of result type prop should always supply concrete syntax;
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    11
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    12
- 'Variable --> Constant' possible during rewriting;
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    13
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    14
- 'trivial definitions' via macros (e.g. "x ~= y" == "~ (x = y)");
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    15
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    16
- patterns matching any remaining arguments are not possible (i.e. what would
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    17
  be (f x y . zs) in LISP); e.g. HOL's @ (supposing it implemented via macros
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    18
  which it is *not*): "@x. P" == "Eps(%x. P)", now the print rule doesn't
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    19
  match things like Eps(%x. P, a, b, c);
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    20
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    21
- alpha: the precise manner in which bounds are renamed for printing;
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    22
107
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    23
- parsing: applications like f(x)(y)(z) are not parse-ast-translated into
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    24
  (f x y z); this may cause some problems, when the notation "f x y z" for
b4a8dabc7313 replaced by current version;
wenzelm
parents: 106
diff changeset
    25
  applications will be introduced;
103
30bd42401ab2 Initial revision
lcp
parents:
diff changeset
    26