0000: 44 64 6f 63 0a 24 28 44 44 4f 43 5f 41 55 54 48 Ddoc.$(DDOC_AUTH
0010: 4f 52 53 20 6b 2e 69 6e 61 62 61 29 0a 24 28 44 ORS k.inaba).$(D
0020: 44 4f 43 5f 4c 49 43 45 4e 53 45 20 4e 59 53 4c DOC_LICENSE NYSL
0030: 20 30 2e 39 39 38 32 20 28 68 74 74 70 3a 2f 2f 0.9982 (http://
0040: 77 77 77 2e 6b 6d 6f 6e 6f 73 2e 6e 65 74 2f 6e www.kmonos.net/n
0050: 79 73 6c 2f 29 29 0a 0a 3c 70 3e 0a e3 81 93 e3 ysl/))..<p>.....
0060: 81 ae e3 83 95 e3 82 a1 e3 82 a4 e3 83 ab e3 81 ................
0070: af e3 80 81 e8 a8 80 e8 aa 9e e4 bb 95 e6 a7 98 ................
0080: e3 81 aa e3 81 a9 e3 81 ae e7 b0 a1 e5 8d 98 e3 ................
0090: 81 aa e8 aa ac e6 98 8e e3 81 a7 e3 81 99 e3 80 ................
00a0: 82 0a 3c 2f 70 3e 0a 3c 70 3e 0a e3 81 82 e3 81 ..</p>.<p>......
00b0: a8 e3 81 a4 e3 81 84 e3 81 a7 e3 81 ab e3 80 81 ................
00c0: e5 b7 a6 e3 81 ae e3 82 b5 e3 82 a4 e3 83 89 e3 ................
00d0: 83 90 e3 83 bc e3 81 ae 20 22 50 61 63 6b 61 67 ........ "Packag
00e0: 65 22 20 e3 82 bf e3 83 96 e3 82 92 e3 82 af e3 e" .............
00f0: 83 aa e3 83 83 e3 82 af e3 81 99 e3 82 8b e3 81 ................
0100: a8 e5 ae 9f e8 a3 85 e3 81 ae e3 82 bd e3 83 bc ................
0110: e3 82 b9 e3 81 ae e3 83 89 e3 82 ad e3 83 a5 e3 ................
0120: 83 a1 e3 83 b3 e3 83 88 e3 81 8c e8 aa ad e3 82 ................
0130: 81 e3 81 be e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a ...........</p>.
0140: 0a 24 28 44 44 4f 43 5f 4d 45 4d 42 45 52 53 0a .$(DDOC_MEMBERS.
0150: 0a 24 28 53 45 43 54 49 4f 4e 20 53 79 6e 74 61 .$(SECTION Synta
0160: 78 2c 20 24 28 53 45 43 42 4f 44 59 0a 3c 70 3e x, $(SECBODY.<p>
0170: 0a e6 96 87 e6 b3 95 e3 81 ab e3 81 a4 e3 81 84 ................
0180: e3 81 a6 e3 80 82 0a e5 ad 97 e5 8f a5 e8 a7 a3 ................
0190: e6 9e 90 e3 81 8c e3 82 8f e3 82 8a e3 81 a8 e9 ................
01a0: 81 a9 e5 bd 93 e3 81 aa e3 81 ae e3 81 a7 e3 80 ................
01b0: 81 0a e5 a4 89 e6 95 b0 e5 ae a3 e8 a8 80 e3 81 ................
01c0: ae e5 a4 89 e6 95 b0 e5 90 8d e3 81 ae e3 81 a8 ................
01d0: e3 81 93 e3 82 8d e3 81 ab e3 80 81 e6 95 b0 e5 ................
01e0: ad 97 e3 82 92 e5 a4 89 e6 95 b0 e5 90 8d e3 81 ................
01f0: a8 e3 81 97 e3 81 a6 e4 bd bf e3 81 88 e3 81 a6 ................
0200: e5 8f 82 e7 85 a7 e3 81 a7 e3 81 8d e3 81 aa e3 ................
0210: 81 84 e5 a4 89 e6 95 b0 e3 81 8c e4 bd 9c e3 82 ................
0220: 8c e3 81 9f e3 82 8a e3 80 81 0a e4 ba 88 e7 b4 ................
0230: 84 e8 aa 9e e3 81 af e4 ba 88 e7 b4 84 e8 aa 9e ................
0240: e3 81 a8 e3 81 97 e3 81 a6 e8 a7 a3 e9 87 88 e3 ................
0250: 81 95 e3 82 8c e5 be 97 e3 81 aa e3 81 84 e3 81 ................
0260: a8 e3 81 93 e3 82 8d e3 81 a7 e3 81 af e6 99 ae ................
0270: e9 80 9a e3 81 ab e5 a4 89 e6 95 b0 e5 90 8d e3 ................
0280: 81 a8 e3 81 97 e3 81 a6 e4 bd bf e3 81 88 e3 81 ................
0290: a1 e3 82 83 e3 81 a3 e3 81 9f e3 82 8a e3 81 97 ................
02a0: e3 81 a6 e3 80 81 0a e5 81 b6 e3 81 ab e3 81 a8 ................
02b0: e3 82 93 e3 81 a7 e3 82 82 e3 81 aa e3 81 84 e8 ................
02c0: a6 8b e3 81 8b e3 81 91 e3 81 ae e3 82 bd e3 83 ................
02d0: bc e3 82 b9 e3 81 8c e6 a7 8b e6 96 87 e8 a7 a3 ................
02e0: e6 9e 90 e9 80 9a e3 82 8a e3 81 be e3 81 99 e3 ................
02f0: 81 8c e3 80 81 e6 b0 97 e3 81 ab e3 81 97 e3 81 ................
0300: aa e3 81 84 e3 81 a7 e9 81 a9 e5 bd 93 e3 81 ab ................
0310: e4 bd bf e3 81 a3 e3 81 a6 e4 b8 8b e3 81 95 e3 ................
0320: 81 84 e3 80 82 0a 3c 2f 70 3e 0a 0a 24 28 44 44 ......</p>..$(DD
0330: 4f 43 5f 4d 45 4d 42 45 52 53 0a 0a 24 28 53 45 OC_MEMBERS..$(SE
0340: 43 54 49 4f 4e 20 e6 96 87 e5 ad 97 e3 82 b3 e3 CTION ..........
0350: 83 bc e3 83 89 2c 20 24 28 53 45 43 42 4f 44 59 ....., $(SECBODY
0360: 0a 3c 70 3e 0a 55 54 46 2d 38 20 e3 81 ae e3 81 .<p>.UTF-8 .....
0370: bf e5 af be e5 bf 9c e3 81 a7 e3 81 99 e3 80 82 ................
0380: 0a 3c 2f 70 3e 0a 29 29 0a 0a 24 28 53 45 43 54 .</p>.))..$(SECT
0390: 49 4f 4e 20 e3 82 b3 e3 83 a1 e3 83 b3 e3 83 88 ION ............
03a0: 2c 20 24 28 53 45 43 42 4f 44 59 0a 3c 70 3e 0a , $(SECBODY.<p>.
03b0: e8 a1 8c e3 82 b3 e3 83 a1 e3 83 b3 e3 83 88 e3 ................
03c0: 81 af 20 3c 74 74 3e 23 3c 2f 74 74 3e 20 e3 81 .. <tt>#</tt> ..
03d0: 8b e3 82 89 e6 94 b9 e8 a1 8c e3 81 be e3 81 a7 ................
03e0: e3 81 a7 e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c ..........</p>.<
03f0: 70 3e 0a e3 83 96 e3 83 ad e3 83 83 e3 82 af e3 p>..............
0400: 82 b3 e3 83 a1 e3 83 b3 e3 83 88 e3 81 af e3 81 ................
0410: 82 e3 82 8a e3 81 be e3 81 9b e3 82 93 e3 80 82 ................
0420: 0a 3c 2f 70 3e 0a 29 29 0a 0a 24 28 53 45 43 54 .</p>.))..$(SECT
0430: 49 4f 4e 20 42 4e 46 2c 20 24 28 53 45 43 42 4f ION BNF, $(SECBO
0440: 44 59 0a 3c 70 72 65 3e 0a 20 49 44 20 20 20 20 DY.<pre>. ID
0450: 3a 3a 3d 20 e9 81 a9 e5 bd 93 e3 81 ab e8 ad 98 ::= ............
0460: e5 88 a5 e5 ad 90 e3 81 a3 e3 81 bd e3 81 84 e6 ................
0470: 96 87 e5 ad 97 e5 88 97 0a 20 4c 41 59 45 52 20 ......... LAYER
0480: 3a 3a 3d 20 22 40 22 20 49 44 0a 0a 20 45 20 3a ::= "@" ID.. E :
0490: 3a 3d 0a 20 20 20 24 28 44 5f 43 4f 4d 4d 45 4e :=. $(D_COMMEN
04a0: 54 20 23 20 e5 a4 89 e6 95 b0 e5 ae a3 e8 a8 80 T # ............
04b0: 29 0a 20 20 20 20 20 7c 20 28 22 76 61 72 22 7c ). | ("var"|
04c0: 22 6c 65 74 22 7c 22 64 65 66 22 7c 4c 41 59 45 "let"|"def"|LAYE
04d0: 52 29 20 49 44 20 22 3d 22 20 45 20 28 22 3b 22 R) ID "=" E (";"
04e0: 7c 22 69 6e 22 29 20 45 0a 20 20 20 20 20 7c 20 |"in") E. |
04f0: 28 22 76 61 72 22 7c 22 6c 65 74 22 7c 22 64 65 ("var"|"let"|"de
0500: 66 22 7c 4c 41 59 45 52 29 20 49 44 20 22 28 22 f"|LAYER) ID "("
0510: 20 50 41 52 41 4d 53 20 22 29 22 20 22 7b 22 20 PARAMS ")" "{"
0520: 45 20 22 7d 22 20 28 22 3b 22 7c 22 69 6e 22 29 E "}" (";"|"in")
0530: 20 45 0a 20 20 20 20 20 7c 20 28 22 76 61 72 22 E. | ("var"
0540: 7c 22 6c 65 74 22 7c 22 64 65 66 22 7c 4c 41 59 |"let"|"def"|LAY
0550: 45 52 29 20 49 44 20 22 3d 22 20 45 0a 20 20 20 ER) ID "=" E.
0560: 20 20 7c 20 28 22 76 61 72 22 7c 22 6c 65 74 22 | ("var"|"let"
0570: 7c 22 64 65 66 22 7c 4c 41 59 45 52 29 20 49 44 |"def"|LAYER) ID
0580: 20 22 28 22 20 50 41 52 41 4d 53 20 22 29 22 20 "(" PARAMS ")"
0590: 22 7b 22 20 45 20 22 7d 22 0a 0a 20 20 20 24 28 "{" E "}".. $(
05a0: 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e3 83 aa e3 D_COMMENT # ....
05b0: 83 86 e3 83 a9 e3 83 ab 29 0a 20 20 20 20 20 7c ........). |
05c0: 20 49 4e 54 45 47 45 52 20 20 20 20 20 20 20 20 INTEGER
05d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
05e0: 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e9 9d $(D_COMMENT # ..
05f0: 9e e8 b2 a0 e6 95 b4 e6 95 b0 29 0a 20 20 20 20 ..........).
0600: 20 7c 20 53 54 52 49 4e 47 20 20 20 20 20 20 20 | STRING
0610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0620: 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 $(D_COMMENT #
0630: 22 22 20 e3 81 a7 e3 81 8f e3 81 8f e3 81 a3 e3 "" .............
0640: 81 9f e6 96 87 e5 ad 97 e5 88 97 e3 80 82 5c 22 ..............\"
0650: 20 e3 81 a8 20 5c 5c 20 e3 81 af e4 bd bf e3 81 ... \\ ........
0660: 88 e3 82 8b 29 0a 20 20 20 20 20 7c 20 22 7b 22 ....). | "{"
0670: 20 45 4e 54 52 59 53 20 22 7d 22 20 20 20 20 20 ENTRYS "}"
0680: 20 20 20 20 20 20 20 20 20 20 20 20 24 28 44 5f $(D_
0690: 43 4f 4d 4d 45 4e 54 20 23 20 e3 83 86 e3 83 bc COMMENT # ......
06a0: e3 83 96 e3 83 ab 29 0a 20 20 20 20 20 7c 20 22 ......). | "
06b0: 66 75 6e 22 20 22 28 22 20 50 41 52 41 4d 53 20 fun" "(" PARAMS
06c0: 22 29 22 20 22 7b 22 20 45 20 22 7d 22 20 24 28 ")" "{" E "}" $(
06d0: 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e7 84 a1 e5 D_COMMENT # ....
06e0: 90 8d e9 96 a2 e6 95 b0 29 0a 20 20 20 20 20 7c ........). |
06f0: 20 20 22 ce bb 22 20 22 28 22 20 50 41 52 41 4d ".." "(" PARAM
0700: 53 20 22 29 22 20 22 7b 22 20 45 20 22 7d 22 20 S ")" "{" E "}"
0710: 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e7 84 $(D_COMMENT # ..
0720: a1 e5 90 8d e9 96 a2 e6 95 b0 29 0a 0a 20 20 20 ..........)..
0730: 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e9 96 $(D_COMMENT # ..
0740: a2 e6 95 b0 e5 91 bc e3 81 b3 e5 87 ba e3 81 97 ................
0750: 29 0a 20 20 20 20 20 7c 20 45 20 22 28 22 20 41 ). | E "(" A
0760: 52 47 53 22 29 22 0a 0a 20 20 20 20 20 20 20 20 RGS")"..
0770: 20 77 68 65 72 65 20 20 20 20 41 52 47 53 20 3a where ARGS :
0780: 3a 3d 20 45 20 22 2c 22 20 2e 2e 2e 20 22 2c 22 := E "," ... ","
0790: 20 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 E.
07a0: 20 20 20 50 41 52 41 4d 53 20 3a 3a 3d 20 28 49 PARAMS ::= (I
07b0: 44 7c 4c 41 59 45 52 29 2b 20 22 2c 22 20 2e 2e D|LAYER)+ "," ..
07c0: 2e 20 22 2c 22 20 28 49 44 7c 4c 41 59 45 52 29 . "," (ID|LAYER)
07d0: 2b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 +.
07e0: 20 20 45 4e 54 52 59 53 20 3a 3a 3d 20 49 44 20 ENTRYS ::= ID
07f0: 22 3a 22 20 45 20 20 20 20 22 2c 22 20 2e 2e 2e ":" E "," ...
0800: 20 22 2c 22 20 49 44 20 22 3a 22 20 45 0a 0a 20 "," ID ":" E..
0810: 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 $(D_COMMENT #
0820: e6 bc 94 e7 ae 97 e5 ad 90 e3 81 aa e3 81 a9 29 ...............)
0830: 0a 20 20 20 20 20 7c 20 22 28 22 20 45 20 22 29 . | "(" E ")
0840: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "
0850: 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 $(D_COMMENT #
0860: e3 81 9f e3 81 a0 e3 81 ae e6 8b ac e5 bc a7 29 ...............)
0870: 0a 20 20 20 20 20 7c 20 45 20 42 49 4e 4f 50 20 . | E BINOP
0880: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
0890: 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 $(D_COMMENT #
08a0: e4 ba 8c e9 a0 85 e6 bc 94 e7 ae 97 e5 ad 90 e3 ................
08b0: 81 84 e3 82 8d e3 81 84 e3 82 8d 29 0a 20 20 20 ...........).
08c0: 20 20 7c 20 45 20 22 2e 22 20 20 49 44 20 20 20 | E "." ID
08d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 28 $(
08e0: 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e3 83 86 e3 D_COMMENT # ....
08f0: 83 bc e3 83 96 e3 83 ab e3 81 ae e3 83 95 e3 82 ................
0900: a3 e3 83 bc e3 83 ab e3 83 89 e3 82 a2 e3 82 af ................
0910: e3 82 bb e3 82 b9 29 0a 20 20 20 20 20 7c 20 45 ......). | E
0920: 20 22 2e 3f 22 20 49 44 20 20 20 20 20 20 20 20 ".?" ID
0930: 20 20 20 20 20 20 20 20 20 24 28 44 5f 43 4f 4d $(D_COM
0940: 4d 45 4e 54 20 23 20 e3 83 86 e3 83 bc e3 83 96 MENT # .........
0950: e3 83 ab e3 81 ab e3 83 95 e3 82 a3 e3 83 bc e3 ................
0960: 83 ab e3 83 89 e3 81 8c e3 81 82 e3 82 8b e3 81 ................
0970: 8b e5 90 a6 e3 81 8b 29 0a 20 20 20 20 20 7c 20 .......). |
0980: 45 20 22 7b 22 20 45 4e 54 52 59 53 20 22 7d 22 E "{" ENTRYS "}"
0990: 20 20 20 20 20 20 20 20 20 20 24 28 44 5f 43 4f $(D_CO
09a0: 4d 4d 45 4e 54 20 23 20 e3 83 86 e3 83 bc e3 83 MMENT # ........
09b0: 96 e3 83 ab e6 8b a1 e5 bc b5 29 0a 20 20 20 20 ..........).
09c0: 20 7c 20 22 69 66 22 20 22 28 22 20 45 20 22 29 | "if" "(" E ")
09d0: 22 20 22 7b 22 20 45 20 22 7d 22 0a 20 20 20 20 " "{" E "}".
09e0: 20 7c 20 22 69 66 22 20 22 28 22 20 45 20 22 29 | "if" "(" E ")
09f0: 22 20 22 7b 22 20 45 20 22 7d 22 20 22 65 6c 73 " "{" E "}" "els
0a00: 65 20 22 7b 22 20 45 20 22 7d 22 0a 0a 20 20 20 e "{" E "}"..
0a10: 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e3 83 $(D_COMMENT # ..
0a20: 91 e3 82 bf e3 83 bc e3 83 b3 e3 83 9e e3 83 83 ................
0a30: e3 83 81 29 0a 20 20 20 20 20 7c 20 22 63 61 73 ...). | "cas
0a40: 65 22 20 22 28 22 20 45 20 22 29 22 20 28 22 77 e" "(" E ")" ("w
0a50: 68 65 6e 22 20 22 28 22 20 50 41 54 54 45 52 4e hen" "(" PATTERN
0a60: 20 22 29 22 20 22 7b 22 20 45 20 22 7d 22 29 2a ")" "{" E "}")*
0a70: 20 0a 0a 20 20 20 20 20 20 20 20 20 77 68 65 72 .. wher
0a80: 65 20 50 41 54 54 45 52 4e 20 3a 3a 3d 20 e5 bc e PATTERN ::= ..
0a90: 8f e3 81 8c e3 81 a0 e3 81 84 e3 81 9f e3 81 84 ................
0aa0: e3 81 aa e3 82 93 e3 81 a7 e3 82 82 e6 9b b8 e3 ................
0ab0: 81 91 e3 82 8b e6 b0 97 e3 81 8c e3 81 99 e3 82 ................
0ac0: 8b 0a 0a 20 20 20 24 28 44 5f 43 4f 4d 4d 45 4e ... $(D_COMMEN
0ad0: 54 20 23 20 e3 83 ac e3 82 a4 e3 83 a4 e6 8c 87 T # ............
0ae0: e5 ae 9a e5 ae 9f e8 a1 8c 29 0a 20 20 20 20 20 .........).
0af0: 7c 20 4c 41 59 45 52 20 22 28 22 20 45 20 22 29 | LAYER "(" E ")
0b00: 22 0a 3c 2f 70 72 65 3e 0a 29 29 0a 0a 24 28 53 ".</pre>.))..$(S
0b10: 45 43 54 49 4f 4e 20 e7 b3 96 e8 a1 a3 e6 a7 8b ECTION .........
0b20: e6 96 87 2c 20 24 28 53 45 43 42 4f 44 59 0a 3c ..., $(SECBODY.<
0b30: 70 3e 0a e6 bc 94 e7 ae 97 e5 ad 90 e3 81 a8 e3 p>..............
0b40: 81 84 e3 81 86 e3 82 82 e3 81 ae e3 81 af e3 81 ................
0b50: 82 e3 82 8a e3 81 be e3 81 9b e3 82 93 e3 80 82 ................
0b60: e5 86 85 e9 83 a8 e7 9a 84 e3 81 ab e3 81 af e5 ................
0b70: 85 a8 e3 81 a6 e9 96 a2 e6 95 b0 e5 91 bc e3 81 ................
0b80: b3 e5 87 ba e3 81 97 e6 a7 8b e6 96 87 e3 81 ab ................
0b90: e6 9b b8 e3 81 8d e6 8f 9b e3 81 88 e3 82 89 e3 ................
0ba0: 82 8c e3 81 a6 e3 81 84 e3 81 be e3 81 99 e3 80 ................
0bb0: 82 3c 74 74 3e 69 66 3c 2f 74 74 3e 20 e3 82 82 .<tt>if</tt> ...
0bc0: e3 81 a7 e3 81 99 e3 80 82 0a 3c 62 72 2f 3e 0a ..........<br/>.
0bd0: e3 83 91 e3 82 bf e3 83 bc e3 83 b3 e3 83 9e e3 ................
0be0: 83 83 e3 83 81 e3 82 82 e5 85 a8 e9 83 a8 20 3c .............. <
0bf0: 74 74 3e 69 66 3c 2f 74 74 3e 20 e3 81 a8 20 3c tt>if</tt> ... <
0c00: 74 74 3e 3d 3d 3c 2f 74 74 3e 20 e3 81 a8 20 3c tt>==</tt> ... <
0c10: 74 74 3e 26 61 6d 70 3b 26 61 6d 70 3b 3c 2f 74 tt>&&</t
0c20: 74 3e 20 e3 81 a8 0a 3c 74 74 3e 2e 3c 2f 74 74 t> ....<tt>.</tt
0c30: 3e 20 e3 81 a8 20 3c 74 74 3e 2e 3f 3c 2f 74 74 > ... <tt>.?</tt
0c40: 3e 20 e3 82 92 e4 bd bf e3 81 a3 e3 81 9f e9 96 > ..............
0c50: a2 e6 95 b0 e5 91 bc e3 81 b3 e5 87 ba e3 81 97 ................
0c60: e5 bc 8f e3 81 ab e6 9b b8 e3 81 8d e6 8f 9b e3 ................
0c70: 81 88 e3 82 89 e3 82 8c e3 81 a6 e3 81 84 e3 81 ................
0c80: be e3 81 99 e3 81 8c e3 80 81 0a e8 a6 8f e5 89 ................
0c90: 87 e3 81 ae e8 a9 b3 e7 b4 b0 e3 82 92 e8 aa ac ................
0ca0: e6 98 8e e3 81 99 e3 82 8b e3 81 ae e3 81 8c e9 ................
0cb0: 9d a2 e5 80 92 e3 81 aa e3 81 ae e3 81 a7 e9 81 ................
0cc0: a9 e5 bd 93 e3 81 ab e6 83 b3 e5 83 8f e3 81 97 ................
0cd0: e3 81 a6 e4 b8 8b e3 81 95 e3 81 84 e3 80 82 0a ................
0ce0: e4 bb 96 e3 81 ae e6 9b b8 e3 81 8d e6 8f 9b e3 ................
0cf0: 81 88 e3 81 af e3 81 93 e3 82 93 e3 81 aa e6 84 ................
0d00: 9f e3 81 98 e3 81 a7 e3 81 99 e3 80 82 0a 3c 2f ..............</
0d10: 70 3e 0a 3c 70 72 65 3e 0a 20 20 20 20 69 66 20 p>.<pre>. if
0d20: 28 45 29 20 7b 45 7d 20 20 20 20 20 20 20 20 20 (E) {E}
0d30: 20 e2 87 92 20 69 66 28 20 45 2c 20 66 75 6e 28 ... if( E, fun(
0d40: 29 7b 45 7d 2c 20 66 75 6e 28 29 7b 7d 20 29 0a ){E}, fun(){} ).
0d50: 20 20 20 20 69 66 20 28 45 29 20 7b 45 7d 20 65 if (E) {E} e
0d60: 6c 73 65 20 7b 45 7d 20 e2 87 92 20 69 66 28 20 lse {E} ... if(
0d70: 45 2c 20 66 75 6e 28 29 7b 45 7d 2c 20 66 75 6e E, fun(){E}, fun
0d80: 28 29 7b 45 7d 20 29 0a 20 20 20 20 45 20 42 49 (){E} ). E BI
0d90: 4e 4f 50 20 45 20 20 20 20 20 20 20 20 20 20 20 NOP E
0da0: e2 87 92 20 42 49 4e 4f 50 28 45 2c 20 45 29 0a ... BINOP(E, E).
0db0: 20 20 20 20 7b 20 45 4e 54 52 49 45 53 20 7d 20 { ENTRIES }
0dc0: 20 20 20 20 20 20 20 20 e2 87 92 20 7b 7d 7b 20 ... {}{
0dd0: 45 4e 54 52 49 45 53 20 7d 0a 20 20 20 20 7b 7d ENTRIES }. {}
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0df0: 20 20 e2 87 92 20 7b 7d 28 29 0a 20 20 20 20 45 ... {}(). E
0e00: 20 7b 49 44 3a 45 2c 20 2e 2e 2e 7d 20 20 20 20 {ID:E, ...}
0e10: 20 20 20 e2 87 92 20 2e 3d 28 45 2c 20 49 44 2c ... .=(E, ID,
0e20: 20 45 29 20 7b 20 2e 2e 2e 20 7d 0a 3c 2f 70 72 E) { ... }.</pr
0e30: 65 3e 0a 3c 70 3e 0a e5 a4 89 e6 95 b0 e5 ae a3 e>.<p>..........
0e40: e8 a8 80 e3 81 ab e8 89 b2 e3 80 85 e3 81 82 e3 ................
0e50: 82 8a e3 81 be e3 81 99 e3 81 8c e3 80 81 3c 74 ..............<t
0e60: 74 3e 6c 65 74 3c 2f 74 74 3e 20 e3 81 a8 20 3c t>let</tt> ... <
0e70: 74 74 3e 76 61 72 3c 2f 74 74 3e 20 e3 81 a8 20 tt>var</tt> ...
0e80: 3c 74 74 3e 64 65 66 3c 2f 74 74 3e 20 e3 81 af <tt>def</tt> ...
0e90: e5 90 8c e3 81 98 e6 89 b1 e3 81 84 e3 81 a7 e3 ................
0ea0: 80 81 0a 3c 74 74 3e 69 6e 3c 2f 74 74 3e 20 e3 ...<tt>in</tt> .
0eb0: 81 a8 20 3c 74 74 3e 3b 3c 2f 74 74 3e 20 e3 81 .. <tt>;</tt> ..
0ec0: af e5 90 8c e3 81 98 e6 89 b1 e3 81 84 e3 81 a7 ................
0ed0: e3 81 99 e3 80 82 e3 81 a4 e3 81 be e3 82 8a 0a ................
0ee0: 3c 2f 70 3e 0a 3c 70 72 65 3e 0a 20 20 20 6c 65 </p>.<pre>. le
0ef0: 74 20 78 20 3d 20 45 20 69 6e 20 45 0a 20 20 20 t x = E in E.
0f00: 76 61 72 20 78 20 3d 20 45 20 69 6e 20 45 0a 20 var x = E in E.
0f10: 20 20 64 65 66 20 78 20 3d 20 45 20 69 6e 20 45 def x = E in E
0f20: 0a 20 20 20 6c 65 74 20 78 20 3d 20 45 20 3b 20 . let x = E ;
0f30: 45 0a 20 20 20 76 61 72 20 78 20 3d 20 45 20 3b E. var x = E ;
0f40: 20 45 0a 20 20 20 64 65 66 20 78 20 3d 20 45 20 E. def x = E
0f50: 3b 20 45 0a 3c 2f 70 72 65 3e 0a 3c 70 3e 0a e4 ; E.</pre>.<p>..
0f60: bb a5 e4 b8 8a e3 81 ae e3 81 a9 e3 82 8c e3 82 ................
0f70: 82 e5 90 8c e3 81 98 e6 84 8f e5 91 b3 e3 81 aa ................
0f80: e3 81 ae e3 81 a7 e3 80 81 e3 81 aa e3 82 93 e3 ................
0f90: 81 a8 e3 81 aa e3 81 8f e9 96 a2 e6 95 b0 e5 9e ................
0fa0: 8b e3 81 a3 e3 81 bd e3 81 8f e6 9b b8 e3 81 8d ................
0fb0: e3 81 9f e3 81 84 e6 b0 97 e5 88 86 e3 81 ae e6 ................
0fc0: 97 a5 e3 81 af 20 3c 74 74 3e 6c 65 74 20 69 6e ..... <tt>let in
0fd0: 3c 2f 74 74 3e 20 e3 82 92 e3 80 81 0a e6 89 8b </tt> ..........
0fe0: e7 b6 9a e3 81 8d e5 9e 8b e3 81 a3 e3 81 bd e3 ................
0ff0: 81 8f e6 9b b8 e3 81 8d e3 81 9f e3 81 84 e6 b0 ................
1000: 97 e5 88 86 e3 81 ae e6 97 a5 e3 81 af 20 3c 74 ............. <t
1010: 74 3e 76 61 72 20 3b 3c 2f 74 74 3e 20 e3 82 92 t>var ;</tt> ...
1020: e4 bd bf e3 81 86 e3 81 a8 e3 82 88 e3 81 84 e3 ................
1030: 81 a7 e3 81 97 e3 82 87 e3 81 86 e3 80 82 0a 3c ...............<
1040: 2f 70 3e 0a 3c 70 3e 0a e9 96 a2 e6 95 b0 e3 82 /p>.<p>.........
1050: 92 e5 ae a3 e8 a8 80 e3 81 99 e3 82 8b e3 81 a8 ................
1060: e3 81 8d e3 81 af e3 80 81 3c 74 74 3e 66 75 6e .........<tt>fun
1070: 3c 2f 74 74 3e 20 e3 82 84 20 3c 74 74 3e ce bb </tt> ... <tt>..
1080: 3c 2f 74 74 3e 20 e3 82 92 e7 9c 81 e7 95 a5 e3 </tt> ..........
1090: 81 a7 e3 81 8d e3 81 be e3 81 99 e3 80 82 0a e4 ................
10a0: bb a5 e4 b8 8b e3 81 ae e6 9b b8 e3 81 8d e6 8f ................
10b0: 9b e3 81 88 e3 81 8c e8 a1 8c e3 82 8f e3 82 8c ................
10c0: e3 81 be e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c ..........</p>.<
10d0: 70 72 65 3e 0a 20 20 20 64 65 66 20 66 28 20 41 pre>. def f( A
10e0: 52 47 53 20 29 20 7b 20 45 20 7d 3b 20 45 20 20 RGS ) { E }; E
10f0: 20 e2 87 92 20 20 20 64 65 66 20 66 20 3d 20 66 ... def f = f
1100: 75 6e 28 41 52 47 53 29 7b 45 7d 3b 20 45 0a 3c un(ARGS){E}; E.<
1110: 2f 70 72 65 3e 0a 3c 70 3e 0a e4 bb 96 e3 81 ab /pre>.<p>.......
1120: e3 80 81 e3 82 82 e3 81 a3 e3 81 a8 e6 89 8b e7 ................
1130: b6 9a e3 81 8d e5 9e 8b e3 81 a3 e3 81 bd e3 81 ................
1140: 8f e3 81 9f e3 82 81 e3 81 ae e6 9b b8 e3 81 8d ................
1150: e6 8f 9b e3 81 88 e8 89 b2 e3 80 85 0a 3c 2f 70 .............</p
1160: 3e 0a 3c 70 72 65 3e 0a 20 20 20 66 75 6e 20 28 >.<pre>. fun (
1170: 29 20 7b 20 45 3b 20 45 3b 20 45 20 20 20 20 20 ) { E; E; E
1180: 20 7d 20 20 20 e2 87 92 20 20 20 66 75 6e 20 28 } ... fun (
1190: 29 20 7b 20 6c 65 74 20 5f 20 3d 20 45 20 69 6e ) { let _ = E in
11a0: 20 6c 65 74 20 5f 20 3d 20 45 20 69 6e 20 45 20 let _ = E in E
11b0: 7d 0a 20 20 20 66 75 6e 20 28 29 20 7b 20 76 61 }. fun () { va
11c0: 72 20 78 20 3d 20 31 30 30 20 20 7d 20 20 20 e2 r x = 100 } .
11d0: 87 92 20 20 20 66 75 6e 20 28 29 20 7b 20 76 61 .. fun () { va
11e0: 72 20 78 20 3d 20 31 30 30 3b 20 78 20 7d 0a 20 r x = 100; x }.
11f0: 20 20 66 75 6e 20 28 29 20 7b 20 76 61 72 20 78 fun () { var x
1200: 20 3d 20 31 30 30 3b 20 7d 20 20 20 e2 87 92 20 = 100; } ...
1210: 20 20 66 75 6e 20 28 29 20 7b 20 76 61 72 20 78 fun () { var x
1220: 20 3d 20 31 30 30 3b 20 78 20 7d 0a 20 20 20 66 = 100; x }. f
1230: 75 6e 20 28 29 20 7b 20 7d 20 20 20 20 20 20 20 un () { }
1240: 20 20 20 20 20 20 20 20 20 e2 87 92 20 20 20 66 ... f
1250: 75 6e 20 28 29 20 7b 20 22 28 65 6d 70 74 79 20 un () { "(empty
1260: 66 75 6e 63 74 69 6f 6e 20 62 6f 64 79 29 22 20 function body)"
1270: 7d 0a 3c 2f 70 72 65 3e 0a 3c 70 3e 0a e4 b8 ad }.</pre>.<p>....
1280: e8 ba ab e3 81 8c e7 a9 ba e3 81 ae e9 96 a2 e6 ................
1290: 95 b0 e3 81 ab e4 bd 95 e3 82 92 e8 bf 94 e3 81 ................
12a0: 95 e3 81 9b e3 82 8b e3 81 8b e3 81 af e9 81 a9 ................
12b0: e5 bd 93 e3 81 a7 e3 81 99 e3 80 82 e4 bb 8a e3 ................
12c0: 81 af e3 81 a8 e3 82 8a e3 81 82 e3 81 88 e3 81 ................
12d0: 9a e9 81 a9 e5 bd 93 e3 81 ab e6 96 87 e5 ad 97 ................
12e0: e5 88 97 e8 bf 94 e3 81 97 e3 81 a6 e3 81 be e3 ................
12f0: 81 99 e3 80 82 0a 3c 2f 70 3e 0a 29 29 0a 0a 24 ......</p>.))..$
1300: 28 53 45 43 54 49 4f 4e 20 e5 a4 89 e6 95 b0 e3 (SECTION .......
1310: 81 ae e3 82 b9 e3 82 b3 e3 83 bc e3 83 97 e8 a6 ................
1320: 8f e5 89 87 2c 20 24 28 53 45 43 42 4f 44 59 0a ...., $(SECBODY.
1330: 3c 70 3e 0a e5 9f ba e6 9c ac e7 9a 84 e3 81 ab <p>.............
1340: e3 81 af e3 80 81 6c 65 74 20 e3 81 ab e3 82 88 ......let ......
1350: e3 81 a3 e3 81 a6 e5 b8 b8 e8 ad 98 e7 9a 84 e3 ................
1360: 81 aa e6 84 9f e3 81 98 e3 81 ab e5 a4 89 e6 95 ................
1370: b0 e3 81 ae e3 82 b9 e3 82 b3 e3 83 bc e3 83 97 ................
1380: e3 81 8c e3 83 8d e3 82 b9 e3 83 88 e3 81 97 e3 ................
1390: 81 be e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c 70 .........</p>.<p
13a0: 72 65 3e 0a 20 20 20 6c 65 74 20 78 3d 32 31 20 re>. let x=21
13b0: 69 6e 20 6c 65 74 20 78 3d 78 2b 78 20 69 6e 20 in let x=x+x in
13c0: 78 20 20 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 x $(D_COMMENT
13d0: 20 23 20 34 32 29 0a 3c 2f 70 72 65 3e 0a 3c 70 # 42).</pre>.<p
13e0: 3e 0a e4 b8 80 e6 96 b9 e3 81 a7 e3 80 81 22 6c >............."l
13f0: 65 74 20 72 65 63 22 20 e3 81 ae e3 82 88 e3 81 et rec" ........
1400: 86 e3 81 aa e7 89 b9 e5 88 a5 e3 81 aa e6 a7 8b ................
1410: e6 96 87 e3 81 af e3 81 82 e3 82 8a e3 81 be e3 ................
1420: 81 9b e3 82 93 e3 81 8c e3 80 81 0a 3c 2f 70 3e ............</p>
1430: 0a 3c 70 72 65 3e 0a 20 20 20 6c 65 74 20 66 20 .<pre>. let f
1440: 3d 20 66 75 6e 28 78 29 20 7b 20 69 66 28 78 3d = fun(x) { if(x=
1450: 3d 30 29 7b 31 7d 65 6c 73 65 7b 78 2a 66 28 78 =0){1}else{x*f(x
1460: 2d 31 29 7d 20 7d 20 69 6e 20 66 28 31 30 29 20 -1)} } in f(10)
1470: 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 33 $(D_COMMENT # 3
1480: 36 32 38 38 30 30 29 0a 3c 2f 70 72 65 3e 0a 3c 628800).</pre>.<
1490: 70 3e 0a e5 86 8d e5 b8 b0 e7 9a 84 e3 81 aa e9 p>..............
14a0: 96 a2 e6 95 b0 e5 ae 9a e7 be a9 e3 81 aa e3 81 ................
14b0: a9 e3 82 82 e3 80 81 e3 81 8a e3 81 9d e3 82 89 ................
14c0: e3 81 8f e6 84 8f e5 9b b3 e3 81 95 e3 82 8c e3 ................
14d0: 81 9f e3 81 a8 e3 81 8a e3 82 8a e3 81 ab e5 8b ................
14e0: 95 e3 81 8d e3 81 be e3 81 99 e3 80 82 0a e5 86 ................
14f0: 85 e9 83 a8 e3 81 ae e8 a9 b3 e7 b4 b0 e3 81 af ................
1500: e3 80 81 e8 ab b8 e8 88 ac e3 81 ae e4 ba 8b e6 ................
1510: 83 85 e3 81 ab e3 82 88 e3 82 8a e3 80 81 0a e3 ................
1520: 83 9e e3 82 b8 e3 82 ab e3 83 ab e3 81 a7 e7 a0 ................
1530: b4 e5 a3 8a e7 9a 84 e3 81 aa e3 82 b9 e3 82 b3 ................
1540: e3 83 bc e3 83 97 e8 a6 8f e5 89 87 e3 81 ab e3 ................
1550: 81 aa e3 81 a3 e3 81 a6 e3 81 84 e3 82 8b e3 81 ................
1560: ae e3 81 a7 e3 81 99 e3 81 8c e3 80 81 0a e5 90 ................
1570: 8c e5 90 8d e3 81 ae e5 a4 89 e6 95 b0 e3 82 92 ................
1580: e6 bf 80 e3 81 97 e3 81 8f e9 87 8d e3 81 ad e3 ................
1590: 81 a6 e4 bd bf e3 81 a3 e3 81 9f e3 82 8a e3 81 ................
15a0: 97 e3 81 aa e3 81 91 e3 82 8c e3 81 b0 e3 80 81 ................
15b0: 0a e3 81 a0 e3 81 84 e3 81 9f e3 81 84 e8 87 aa ................
15c0: e7 84 b6 e3 81 aa e5 8b 95 e3 81 8d e3 82 92 e3 ................
15d0: 81 99 e3 82 8b e3 81 a8 e6 80 9d e3 81 84 e3 81 ................
15e0: be e3 81 99 e3 80 81 e3 81 9f e3 81 b6 e3 82 93 ................
15f0: e3 80 81 e3 81 af e3 81 84 e3 80 82 0a 3c 2f 70 .............</p
1600: 3e 0a 3c 70 3e 0a e3 81 b2 e3 81 a8 e3 81 a4 e3 >.<p>...........
1610: 81 a0 e3 81 91 e4 b8 8d e5 8f af e6 80 9d e8 ad ................
1620: b0 e3 81 aa e5 8b 95 e3 81 8d e3 82 92 e3 81 99 ................
1630: e3 82 8b e3 81 ae e3 81 af e3 80 81 e4 bb a5 e4 ................
1640: b8 8b e3 81 ae e3 82 b1 e3 83 bc e3 82 b9 e3 81 ................
1650: a7 e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c 70 72 ........</p>.<pr
1660: 65 3e 0a 20 20 20 6c 65 74 20 78 20 3d 20 31 20 e>. let x = 1
1670: 69 6e 0a 20 20 20 6c 65 74 20 66 20 3d 20 66 75 in. let f = fu
1680: 6e 28 29 20 7b 78 7d 20 69 6e 0a 20 20 20 6c 65 n() {x} in. le
1690: 74 20 78 20 3d 20 32 20 69 6e 0a 20 20 20 20 20 t x = 2 in.
16a0: 20 66 28 29 20 20 20 20 24 28 44 5f 43 4f 4d 4d f() $(D_COMM
16b0: 45 4e 54 20 23 20 32 21 21 29 0a 3c 2f 70 72 65 ENT # 2!!).</pre
16c0: 3e 0a 3c 70 3e 0a 6c 65 74 2d 69 6e 20 e3 82 92 >.<p>.let-in ...
16d0: e7 b8 a6 e3 81 ab e3 83 81 e3 82 a7 e3 82 a4 e3 ................
16e0: 83 b3 e3 81 97 e3 81 9f e3 81 a8 e3 81 8d e3 81 ................
16f0: a0 e3 81 91 e3 80 81 e5 90 8c e5 90 8d e5 a4 89 ................
1700: e6 95 b0 e3 82 92 e7 a0 b4 e5 a3 8a e7 9a 84 e3 ................
1710: 81 ab e4 b8 8a e6 9b b8 e3 81 8d e3 81 97 e3 81 ................
1720: be e3 81 99 0a ef bc 88 e5 86 8d e5 b8 b0 e9 96 ................
1730: a2 e6 95 b0 e3 81 ae e5 ae 9a e7 be a9 e3 81 8c ................
1740: 22 e3 81 86 e3 81 be e3 81 8f 22 e3 81 84 e3 81 ".........".....
1750: a3 e3 81 a6 e3 81 84 e3 82 8b e3 81 ae e3 81 af ................
1760: e3 81 93 e3 81 ae e4 b8 8a e6 9b b8 e3 81 8d e3 ................
1770: 81 ae e3 81 9f e3 82 81 e3 81 a7 e3 81 99 ef bc ................
1780: 89 e3 80 82 0a e3 81 aa e3 82 93 e3 81 a7 e3 81 ................
1790: 93 e3 82 93 e3 81 aa e3 81 93 e3 81 a8 e3 81 ab ................
17a0: e3 81 aa e3 81 a3 e3 81 a6 e3 81 84 e3 82 8b e3 ................
17b0: 81 8b e3 81 a8 e3 81 84 e3 81 86 e3 81 a8 e3 80 ................
17c0: 81 0a e5 be 8c e3 81 a7 e8 aa ac e6 98 8e e3 81 ................
17d0: 99 e3 82 8b e3 80 8c e3 83 ac e3 82 a4 e3 83 a4 ................
17e0: e3 80 8d e3 82 92 e4 bd bf e3 81 a3 e3 81 9f e3 ................
17f0: 81 a8 e3 81 8d e3 81 ab 0a 3c 74 74 3e 6c 65 74 .........<tt>let
1800: 20 66 6f 6f 20 3d 20 2e 2e 2e 20 69 6e 20 40 6c foo = ... in @l
1810: 61 79 20 66 6f 6f 20 3d 20 2e 2e 2e 20 69 6e 20 ay foo = ... in
1820: 2e 2e 2e 3c 2f 74 74 3e 0a e3 81 a7 e4 bb 96 e3 ...</tt>........
1830: 83 ac e3 82 a4 e3 83 a4 e3 81 ab e9 87 8d e3 81 ................
1840: ad e6 9b b8 e3 81 8d e3 81 99 e3 82 8b e3 81 9f ................
1850: e3 82 81 e3 81 a7 e3 81 82 e3 82 8a e3 81 be e3 ................
1860: 81 99 e3 80 82 0a 3c 2f 70 3e 0a 29 29 0a 29 0a ......</p>.)).).
1870: 29 29 0a 0a 0a 0a 0a 24 28 53 45 43 54 49 4f 4e )).....$(SECTION
1880: 20 42 61 73 69 63 20 46 65 61 74 75 72 65 73 2c Basic Features,
1890: 20 24 28 53 45 43 42 4f 44 59 0a 3c 70 3e 0a e7 $(SECBODY.<p>..
18a0: 89 b9 e3 81 ab e7 89 b9 e5 be b4 e7 9a 84 e3 81 ................
18b0: a7 e3 82 82 e3 81 aa e3 81 84 e9 83 a8 e5 88 86 ................
18c0: e3 82 92 e7 b0 a1 e5 8d 98 e3 81 ab e3 81 be e3 ................
18d0: 81 a8 e3 82 81 e3 80 82 0a 3c 2f 70 3e 0a 3c 75 .........</p>.<u
18e0: 6c 3e 0a 20 20 3c 6c 69 3e e9 9d 99 e7 9a 84 e5 l>. <li>.......
18f0: 9e 8b e3 82 b7 e3 82 b9 e3 83 86 e3 83 a0 e3 81 ................
1900: af e3 81 82 e3 82 8a e3 81 be e3 81 9b e3 82 93 ................
1910: e3 80 82 3c 2f 6c 69 3e 0a 20 20 3c 6c 69 3e 22 ...</li>. <li>"
1920: e3 81 bb e3 81 bc 22 20 e7 b4 94 e7 b2 8b e9 96 ......" ........
1930: a2 e6 95 b0 e5 9e 8b e8 a8 80 e8 aa 9e e3 81 a7 ................
1940: e3 81 99 e3 80 82 e5 a4 89 e6 95 b0 e3 82 84 e3 ................
1950: 83 86 e3 83 bc e3 83 96 e3 83 ab e3 81 ae e3 83 ................
1960: 95 e3 82 a3 e3 83 bc e3 83 ab e3 83 89 e3 81 ae ................
1970: e7 a0 b4 e5 a3 8a e7 9a 84 e3 81 aa e6 9b b8 e3 ................
1980: 81 8d e6 8f 9b e3 81 88 e3 81 af e3 81 a7 e3 81 ................
1990: 8d e3 81 be e3 81 9b e3 82 93 e3 80 82 3c 62 72 .............<br
19a0: 2f 3e 0a 20 20 20 20 20 20 e3 81 9f e3 81 a0 e3 />. .......
19b0: 81 97 e3 80 81 e7 b5 84 e3 81 bf e8 be bc e3 81 ................
19c0: bf e9 96 a2 e6 95 b0 ef bc 88 3c 74 74 3e 70 72 ..........<tt>pr
19d0: 69 6e 74 3c 2f 74 74 3e ef bc 89 e3 81 a8 e3 80 int</tt>........
19e0: 81 e5 a4 89 e6 95 b0 e3 81 ae e3 82 b9 e3 82 b3 ................
19f0: e3 83 bc e3 83 97 e8 a6 8f e5 89 87 e3 81 ae e3 ................
1a00: 83 9e e3 82 b8 e3 82 ab e3 83 ab e3 81 aa e7 89 ................
1a10: 87 e9 9a 85 e3 81 ab e5 89 af e4 bd 9c e7 94 a8 ................
1a20: e3 81 8c e3 81 82 e3 82 8a e3 81 be e3 81 99 e3 ................
1a30: 80 82 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 70 ..</li>.</ul>.<p
1a40: 3e 0a e9 9d 99 e7 9a 84 e5 9e 8b e3 82 b7 e3 82 >...............
1a50: b9 e3 83 86 e3 83 a0 e3 81 8c e3 81 aa e3 81 84 ................
1a60: e3 81 ae e3 81 af e6 84 8f e5 9b b3 e7 9a 84 e3 ................
1a70: 81 a7 e3 81 99 e3 81 8c e3 80 81 e7 a0 b4 e5 a3 ................
1a80: 8a e7 9a 84 e4 bb a3 e5 85 a5 e3 81 8c e3 81 aa ................
1a90: e3 81 84 e3 81 ae e3 81 af e3 80 81 e5 8d 98 e3 ................
1aa0: 81 ab e5 ae 9f e8 a3 85 e3 81 8c e3 82 81 e3 82 ................
1ab0: 93 e3 81 a9 e3 81 8b e3 81 a3 e3 81 9f e3 81 a0 ................
1ac0: e3 81 91 e3 81 aa e3 81 ae e3 81 a7 e3 80 81 0a ................
1ad0: e4 bb 8a e5 be 8c e4 bd 95 e3 81 8b e5 a2 97 e3 ................
1ae0: 81 88 e3 82 8b e3 81 8b e3 82 82 e3 81 97 e3 82 ................
1af0: 8c e3 81 be e3 81 9b e3 82 93 e3 80 82 e5 a2 97 ................
1b00: e3 81 88 e3 81 aa e3 81 84 e3 81 8b e3 82 82 e3 ................
1b10: 81 97 e3 82 8c e3 81 be e3 81 9b e3 82 93 e3 80 ................
1b20: 82 0a 3c 2f 70 3e 0a 24 28 44 44 4f 43 5f 4d 45 ..</p>.$(DDOC_ME
1b30: 4d 42 45 52 53 0a 24 28 53 45 43 54 49 4f 4e 20 MBERS.$(SECTION
1b40: e3 83 87 e3 83 bc e3 82 bf e5 9e 8b 2c 20 24 28 ............, $(
1b50: 53 45 43 42 4f 44 59 0a 3c 70 3e 0a e4 bb a5 e4 SECBODY.<p>.....
1b60: b8 8b e3 81 ae e3 83 87 e3 83 bc e3 82 bf e5 9e ................
1b70: 8b e3 81 8c e3 81 82 e3 82 8a e3 81 be e3 81 99 ................
1b80: e3 80 82 0a 3c 2f 70 3e 0a 3c 75 6c 3e 0a 20 20 ....</p>.<ul>.
1b90: 3c 6c 69 3e e6 95 b4 e6 95 b0 3a 20 20 20 20 20 <li>......:
1ba0: 3c 74 74 3e 30 3c 2f 74 74 3e 2c 20 3c 74 74 3e <tt>0</tt>, <tt>
1bb0: 31 32 33 3c 2f 74 74 3e 2c 20 3c 74 74 3e 34 35 123</tt>, <tt>45
1bc0: 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 6666666666666666
1bd0: 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 6666666666666666
1be0: 36 36 36 36 36 37 38 39 3c 2f 74 74 3e 2c 20 2e 66666789</tt>, .
1bf0: 2e 2e 3c 2f 6c 69 3e 0a 20 20 3c 6c 69 3e e6 96 ..</li>. <li>..
1c00: 87 e5 ad 97 e5 88 97 3a 20 20 20 3c 74 74 3e 22 .......: <tt>"
1c10: 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 22 3c 2f hello, world!"</
1c20: 74 74 3e 2c 20 2e 2e 2e 3c 2f 6c 69 3e 0a 20 20 tt>, ...</li>.
1c30: 3c 6c 69 3e e9 96 a2 e6 95 b0 3a 20 20 20 20 20 <li>......:
1c40: 3c 74 74 3e 66 75 6e 28 78 29 7b 78 2b 31 7d 3c <tt>fun(x){x+1}<
1c50: 2f 74 74 3e 3c 2f 6c 69 3e 0a 20 20 3c 6c 69 3e /tt></li>. <li>
1c60: e3 83 86 e3 83 bc e3 83 96 e3 83 ab 3a 20 3c 74 ............: <t
1c70: 74 3e 7b 63 61 72 3a 20 31 2c 20 63 64 72 3a 20 t>{car: 1, cdr:
1c80: 7b 63 61 72 3a 20 32 2c 20 63 64 72 3a 20 7b 7d {car: 2, cdr: {}
1c90: 7d 7d 3c 2f 74 74 3e 3c 2f 6c 69 3e 0a 20 20 3c }}</tt></li>. <
1ca0: 6c 69 3e e6 9c aa e5 ae 9a e7 be a9 e5 80 a4 3a li>............:
1cb0: 20 28 e3 83 86 e3 83 bc e3 83 96 e3 83 ab e3 81 (..............
1cc0: ae e3 80 81 e5 ad 98 e5 9c a8 e3 81 97 e3 81 aa ................
1cd0: e3 81 84 e3 83 95 e3 82 a3 e3 83 bc e3 83 ab e3 ................
1ce0: 83 89 e3 81 ab e3 82 a2 e3 82 af e3 82 bb e3 82 ................
1cf0: b9 e3 81 97 e3 81 9f e3 82 8a e3 81 99 e3 82 8b ................
1d00: e3 81 a8 e4 bd 9c e3 82 8c e3 81 be e3 81 99 29 ...............)
1d10: 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 3c 70 3e 0a </li>.</ul>.<p>.
1d20: e9 96 a2 e6 95 b0 e3 81 af e3 81 84 e3 82 8f e3 ................
1d30: 82 86 e3 82 8b e3 80 8c e3 82 af e3 83 ad e3 83 ................
1d40: bc e3 82 b8 e3 83 a3 e3 80 8d e3 81 a7 e3 81 99 ................
1d50: e3 80 82 e9 9d 99 e7 9a 84 e3 82 b9 e3 82 b3 e3 ................
1d60: 83 bc e3 83 97 e3 81 a7 e5 a4 96 e5 81 b4 e3 81 ................
1d70: ae e7 92 b0 e5 a2 83 e3 81 ab e3 82 a2 e3 82 af ................
1d80: e3 82 bb e3 82 b9 e3 81 a7 e3 81 8d e3 81 be e3 ................
1d90: 81 99 e3 80 82 0a e3 83 86 e3 83 bc e3 83 96 e3 ................
1da0: 83 ab e3 81 af e3 81 84 e3 82 8f e3 82 86 e3 82 ................
1db0: 8b e3 83 97 e3 83 ad e3 83 88 e3 82 bf e3 82 a4 ................
1dc0: e3 83 97 e3 83 81 e3 82 a7 e3 83 bc e3 83 b3 e3 ................
1dd0: 82 92 e6 8c 81 e3 81 a3 e3 81 a6 e3 81 84 e3 81 ................
1de0: a6 e3 80 81 0a e8 87 aa e5 88 86 e3 81 ab e3 81 ................
1df0: aa e3 81 84 e3 83 95 e3 82 a3 e3 83 bc e3 83 ab ................
1e00: e3 83 89 e3 81 ae e5 a0 b4 e5 90 88 e3 81 af e8 ................
1e10: a6 aa e3 81 ab e5 95 8f e3 81 84 e5 90 88 e3 82 ................
1e20: 8f e3 81 9b e3 81 8c e8 a1 8c e3 81 8f e6 84 9f ................
1e30: e3 81 98 e3 81 ab e3 81 aa e3 81 a3 e3 81 a6 e3 ................
1e40: 81 84 e3 81 be e3 81 99 e3 81 8c e3 80 81 0a e3 ................
1e50: 83 95 e3 82 a3 e3 83 bc e3 83 ab e3 83 89 e3 81 ................
1e60: ae e6 9b b8 e3 81 8d e6 8f 9b e3 81 88 e3 81 8c ................
1e70: e3 81 aa e3 81 84 e3 81 ae e3 81 a7 e3 80 81 e3 ................
1e80: 81 93 e3 82 8c e3 81 af e7 89 b9 e3 81 ab e6 84 ................
1e90: 8f e5 91 b3 e3 81 aa e3 81 84 e3 81 8b e3 82 82 ................
1ea0: e3 81 97 e3 82 8c e3 81 aa e3 81 84 e2 80 a6 e3 ................
1eb0: 80 82 0a 3c 2f 70 3e 0a 29 29 0a 24 28 53 45 43 ...</p>.)).$(SEC
1ec0: 54 49 4f 4e 20 e3 83 91 e3 82 bf e3 83 bc e3 83 TION ...........
1ed0: b3 e3 83 9e e3 83 83 e3 83 81 2c 20 24 28 53 45 .........., $(SE
1ee0: 43 42 4f 44 59 0a 3c 70 3e 0a e9 81 a9 e5 bd 93 CBODY.<p>.......
1ef0: e3 81 ab e5 ae 9f e8 a3 85 e3 81 95 e3 82 8c e3 ................
1f00: 81 9f e3 83 91 e3 82 bf e3 83 bc e3 83 b3 e3 83 ................
1f10: 9e e3 83 83 e3 83 81 e3 81 8c e3 81 82 e3 82 8a ................
1f20: e3 81 be e3 81 99 e3 80 82 0a e3 83 aa e3 82 b9 ................
1f30: e3 83 88 e3 81 ae 20 32 6e 20 e7 95 aa e7 9b ae ...... 2n ......
1f40: e3 81 a8 20 32 6e 2b 31 20 e7 95 aa e7 9b ae e3 ... 2n+1 .......
1f50: 82 92 e8 b6 b3 e3 81 97 e3 81 a6 e9 95 b7 e3 81 ................
1f60: 95 e3 82 92 e5 8d 8a e5 88 86 e3 81 ab e3 81 99 ................
1f70: e3 82 8b e9 96 a2 e6 95 b0 ef bc 9a 0a 3c 2f 70 .............</p
1f80: 3e 0a 3c 70 72 65 3e 0a 20 20 20 20 64 65 66 20 >.<pre>. def
1f90: 61 64 6a 53 75 6d 28 6c 73 74 29 0a 20 20 20 20 adjSum(lst).
1fa0: 7b 0a 20 20 20 20 20 20 63 61 73 65 28 20 6c 73 {. case( ls
1fb0: 74 20 29 0a 20 20 20 20 20 20 20 20 77 68 65 6e t ). when
1fc0: 28 20 7b 63 61 72 3a 78 2c 20 63 64 72 3a 7b 63 ( {car:x, cdr:{c
1fd0: 61 72 3a 20 79 2c 20 63 64 72 3a 7a 7d 7d 20 29 ar: y, cdr:z}} )
1fe0: 20 7b 20 7b 63 61 72 3a 20 78 2b 79 2c 20 63 64 { {car: x+y, cd
1ff0: 72 3a 20 61 64 6a 53 75 6d 28 7a 29 7d 20 7d 0a r: adjSum(z)} }.
2000: 20 20 20 20 20 20 20 20 77 68 65 6e 28 20 7b 63 when( {c
2010: 61 72 3a 78 2c 20 63 64 72 3a 7b 7d 7d 20 29 20 ar:x, cdr:{}} )
2020: 7b 20 6c 73 74 20 7d 0a 20 20 20 20 20 20 20 20 { lst }.
2030: 77 68 65 6e 28 20 7b 7d 20 29 20 7b 20 7b 7d 20 when( {} ) { {}
2040: 7d 0a 20 20 20 20 7d 0a 3c 2f 70 72 65 3e 0a 3c }. }.</pre>.<
2050: 70 3e 0a e5 8b 95 e3 81 8b e3 81 99 e3 81 a8 e3 p>..............
2060: 81 8d e3 81 ab e3 81 af e3 80 81 e5 87 a6 e7 90 ................
2070: 86 e7 b3 bb e3 81 8c e3 81 9d e3 82 8c e3 81 a3 ................
2080: e3 81 bd e3 81 84 20 69 66 2d 74 68 65 6e 2d 65 ...... if-then-e
2090: 6c 73 65 20 e3 81 ab e5 b1 95 e9 96 8b e3 81 97 lse ............
20a0: e3 81 a6 e3 81 84 e3 81 be e3 81 99 e3 80 82 0a ................
20b0: 3c 74 74 3e 77 68 65 6e 3c 2f 74 74 3e 20 e3 82 <tt>when</tt> ..
20c0: 92 e4 b8 8a e3 81 8b e3 82 89 e8 a9 a6 e3 81 97 ................
20d0: e3 81 a6 e3 81 84 e3 81 a3 e3 81 a6 e3 80 81 e6 ................
20e0: 9c 80 e5 88 9d e3 81 ab e3 83 9e e3 83 83 e3 83 ................
20f0: 81 e3 81 97 e3 81 9f e3 81 a8 e3 81 93 e3 82 8d ................
2100: e3 82 92 e5 ae 9f e8 a1 8c e3 81 97 e3 81 be e3 ................
2110: 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c 70 72 65 3e ......</p>.<pre>
2120: 0a 20 20 20 50 41 54 20 3a 3a 3d 20 22 5f 22 20 . PAT ::= "_"
2130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2150: 20 20 20 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 $(D_COMMENT
2160: 20 23 20 e3 83 af e3 82 a4 e3 83 ab e3 83 89 e3 # .............
2170: 82 ab e3 83 bc e3 83 89 29 0a 20 20 20 20 20 20 ........).
2180: 20 20 20 7c 20 49 44 20 20 20 20 20 20 20 20 20 | ID
2190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
21a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 28 $(
21b0: 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e5 a4 89 e6 D_COMMENT # ....
21c0: 95 b0 e3 83 91 e3 82 bf e3 83 bc e3 83 b3 29 0a ..............).
21d0: 20 20 20 20 20 20 20 20 20 7c 20 22 7b 22 20 49 | "{" I
21e0: 44 20 22 3a 22 20 50 41 54 20 22 2c 22 20 2e 2e D ":" PAT "," ..
21f0: 2e 20 22 2c 22 20 49 44 20 3a 20 50 41 54 20 22 . "," ID : PAT "
2200: 7d 22 20 20 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 }" $(D_COMMENT
2210: 23 20 e3 83 86 e3 83 bc e3 83 96 e3 83 ab e3 83 # ..............
2220: 91 e3 82 bf e3 83 bc e3 83 b3 29 0a 20 20 20 20 ..........).
2230: 20 20 20 20 20 7c 20 45 20 20 20 20 20 20 20 20 | E
2240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2250: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2260: 24 28 44 5f 43 4f 4d 4d 45 4e 54 20 23 20 e5 80 $(D_COMMENT # ..
2270: a4 e3 83 91 e3 82 bf e3 83 bc e3 83 b3 29 0a 3c .............).<
2280: 2f 70 72 65 3e 0a 3c 70 3e 0a e5 a4 89 e6 95 b0 /pre>.<p>.......
2290: e3 83 91 e3 82 bf e3 83 bc e3 83 b3 e3 81 af e5 ................
22a0: b8 b8 e3 81 ab e3 83 9e e3 83 83 e3 83 81 e3 81 ................
22b0: 97 e3 81 a6 e3 80 81 e5 80 a4 e3 82 92 e3 81 9d ................
22c0: e3 81 ae e5 a4 89 e6 95 b0 e3 81 ab e6 9d 9f e7 ................
22d0: b8 9b e3 81 97 e3 81 be e3 81 99 e3 80 82 0a e3 ................
22e0: 83 af e3 82 a4 e3 83 ab e3 83 89 e3 82 ab e3 83 ................
22f0: bc e3 83 89 e3 82 82 e5 b8 b8 e3 81 ab e3 83 9e ................
2300: e3 83 83 e3 83 81 e3 81 97 e3 81 be e3 81 99 e3 ................
2310: 81 8c e3 80 81 e5 a4 89 e6 95 b0 e6 9d 9f e7 b8 ................
2320: 9b e3 81 97 e3 81 be e3 81 9b e3 82 93 e3 80 82 ................
2330: 0a e5 80 a4 e3 83 91 e3 82 bf e3 83 bc e3 83 b3 ................
2340: e3 81 af e3 80 81 e4 bb bb e6 84 8f e3 81 ae e5 ................
2350: bc 8f e3 81 8c e6 9b b8 e3 81 91 e3 81 be e3 81 ................
2360: 99 e3 80 82 e3 81 9d e3 81 ae e5 bc 8f e3 82 92 ................
2370: e8 a9 95 e4 be a1 e3 81 97 e3 81 9f e7 b5 90 e6 ................
2380: 9e 9c e3 81 a8 20 3c 74 74 3e 3d 3d 3c 2f 74 74 ..... <tt>==</tt
2390: 3e 20 e3 81 aa e3 82 89 e3 83 9e e3 83 83 e3 83 > ..............
23a0: 81 e3 81 97 e3 81 be e3 81 99 e3 80 82 0a e5 a4 ................
23b0: 96 e3 81 a7 e6 9d 9f e7 b8 9b e3 81 95 e3 82 8c ................
23c0: e3 81 9f e5 a4 89 e6 95 b0 e3 82 92 e5 80 a4 e3 ................
23d0: 83 91 e3 82 bf e3 83 bc e3 83 b3 e3 81 a8 e3 81 ................
23e0: 97 e3 81 a6 e9 85 8d e7 bd ae e3 80 81 e3 81 af ................
23f0: e7 9b b4 e6 8e a5 e3 81 af e3 81 a7 e3 81 8d e3 ................
2400: 81 aa e3 81 84 e3 81 ae e3 81 a7 0a 3c 2f 70 3e ............</p>
2410: 0a 3c 70 72 65 3e 0a 20 20 20 76 61 72 20 78 20 .<pre>. var x
2420: 3d 20 31 32 33 3b 0a 20 20 20 63 61 73 65 28 20 = 123;. case(
2430: 66 6f 6f 20 29 0a 20 20 20 20 20 77 68 65 6e 28 foo ). when(
2440: 20 7b 76 61 6c 3a 20 78 2b 30 7d 20 29 20 7b 20 {val: x+0} ) {
2450: 2e 2e 2e 20 7d 20 24 28 44 5f 43 4f 4d 4d 45 4e ... } $(D_COMMEN
2460: 54 20 23 20 e3 81 93 e3 82 8c e3 81 af e4 bb bb T # ............
2470: e6 84 8f e3 81 ae 20 7b 76 61 6c 3a 31 32 33 7d ...... {val:123}
2480: 20 e3 81 a8 e5 90 8c e3 81 98 29 0a 20 20 20 20 .........).
2490: 20 77 68 65 6e 28 20 7b 76 61 6c 3a 20 78 7d 20 when( {val: x}
24a0: 29 20 7b 20 2e 2e 2e 20 7d 20 20 20 24 28 44 5f ) { ... } $(D_
24b0: 43 4f 4d 4d 45 4e 54 20 23 20 e3 81 93 e3 82 8c COMMENT # ......
24c0: e3 81 af e4 bb bb e6 84 8f e3 81 ae 20 66 6f 6f ............ foo
24d0: 2e 3f 76 61 6c 20 e3 81 aa e3 82 89 e5 b8 b8 e3 .?val ..........
24e0: 81 ab e3 83 9e e3 83 83 e3 83 81 29 0a 3c 2f 70 ...........).</p
24f0: 72 65 3e 0a 3c 70 3e 0a e9 81 a9 e5 bd 93 e3 81 re>.<p>.........
2500: ab e3 81 a1 e3 82 87 e3 81 a3 e3 81 a8 e8 a4 87 ................
2510: e9 9b 91 e3 81 aa e5 bc 8f e3 81 ab e3 81 97 e3 ................
2520: 81 a6 e3 82 84 e3 82 8b e3 81 a8 e3 82 88 e3 81 ................
2530: 84 e3 81 8b e3 82 82 ef bc 88 e8 a3 8f e6 8a 80 ................
2540: ef bc 89 e3 80 82 0a 3c 2f 70 3e 0a 3c 70 3e 0a .......</p>.<p>.
2550: e3 83 86 e3 83 bc e3 83 96 e3 83 ab e3 83 91 e3 ................
2560: 82 bf e3 83 bc e3 83 b3 e3 81 af e3 80 81 e6 9b ................
2570: b8 e3 81 8b e3 82 8c e3 81 9f e3 82 ad e3 83 bc ................
2580: e3 81 8c e5 85 a8 e3 81 a6 e3 81 82 e3 82 8c e3 ................
2590: 81 b0 e3 83 9e e3 83 83 e3 83 81 e3 81 97 e3 81 ................
25a0: be e3 81 99 e3 80 82 0a 3c 74 74 3e 7b 61 3a 20 ........<tt>{a:
25b0: 5f 7d 3c 2f 74 74 3e 20 e3 81 af e3 80 81 3c 74 _}</tt> ......<t
25c0: 74 3e 2e 61 3c 2f 74 74 3e 20 e3 82 92 e6 8c 81 t>.a</tt> ......
25d0: e3 81 a3 e3 81 a6 e3 81 95 e3 81 88 e3 81 84 e3 ................
25e0: 82 8c e3 81 b0 e3 83 9e e3 83 83 e3 83 81 e3 81 ................
25f0: 99 e3 82 8b e3 81 ae e3 81 a7 e3 80 81 0a 3c 74 ..............<t
2600: 74 3e 7b 61 3a 20 31 32 33 2c 20 62 3a 20 34 35 t>{a: 123, b: 45
2610: 36 7d 3c 2f 74 74 3e 20 e3 81 aa e3 82 93 e3 81 6}</tt> ........
2620: 8b e3 81 ab e3 82 82 e3 83 9e e3 83 83 e3 83 81 ................
2630: e3 81 97 e3 81 be e3 81 99 e3 80 82 0a e3 81 aa ................
2640: e3 81 ae e3 81 a7 e3 80 81 e3 83 aa e3 82 b9 e3 ................
2650: 83 88 e3 81 ab e5 af be e3 81 99 e3 82 8b e3 83 ................
2660: 91 e3 82 bf e3 83 bc e3 83 b3 e3 82 92 e6 9b b8 ................
2670: e3 81 8f e3 81 a8 e3 81 8d e3 81 ab e3 81 af e3 ................
2680: 80 81 63 61 72 2f 63 64 72 20 e3 81 ae e5 a0 b4 ..car/cdr ......
2690: e5 90 88 e3 82 92 e5 85 88 e3 81 ab e6 9b b8 e3 ................
26a0: 81 8b e3 81 aa e3 81 84 e3 81 a8 0a 3c 74 74 3e ............<tt>
26b0: 77 68 65 6e 28 7b 7d 29 3c 2f 74 74 3e 20 e3 82 when({})</tt> ..
26c0: 92 e4 b8 8a e3 81 ab e6 9b b8 e3 81 8f e3 81 a8 ................
26d0: e5 85 a8 e9 83 a8 e3 83 9e e3 83 83 e3 83 81 e3 ................
26e0: 81 97 e3 81 a1 e3 82 83 e3 81 84 e3 81 be e3 81 ................
26f0: 99 e3 80 82 e6 b3 a8 e6 84 8f e3 80 82 0a 3c 2f ..............</
2700: 70 3e 0a 29 29 0a 29 0a 29 29 0a 0a 0a 0a 0a 0a p>.)).).))......
2710: 24 28 53 45 43 54 49 4f 4e 20 4c 61 79 65 72 73 $(SECTION Layers
2720: 2c 20 24 28 53 45 43 42 4f 44 59 0a 3c 70 72 65 , $(SECBODY.<pre
2730: 3e 0a 5b 4c 61 79 65 72 73 20 3a 3a 20 4f 76 65 >.[Layers :: Ove
2740: 72 76 69 65 77 5d 0a 0a 20 20 50 6f 6c 65 6d 79 rview].. Polemy
2750: 27 73 20 72 75 6e 74 69 6d 65 20 65 6e 76 69 72 's runtime envir
2760: 6f 6e 6d 65 6e 74 20 68 61 73 20 6d 61 6e 79 20 onment has many
2770: 22 6c 61 79 65 72 22 73 2e 0a 20 20 55 73 75 61 "layer"s.. Usua
2780: 6c 20 65 78 65 63 75 74 69 6f 6e 20 72 75 6e 20 l execution run
2790: 69 6e 20 74 68 65 20 40 76 61 6c 75 65 20 6c 61 in the @value la
27a0: 79 65 72 2e 0a 0a 20 20 20 20 3e 3e 20 31 20 2b yer... >> 1 +
27b0: 20 32 0a 20 20 20 20 33 0a 20 20 20 20 3e 3e 20 2. 3. >>
27c0: 40 76 61 6c 75 65 28 20 31 20 2b 20 32 20 29 0a @value( 1 + 2 ).
27d0: 20 20 20 20 33 0a 0a 20 20 48 65 72 65 20 79 6f 3.. Here yo
27e0: 75 20 63 61 6e 20 73 65 65 20 74 68 61 74 20 40 u can see that @
27f0: 4c 61 79 65 72 4e 61 6d 65 28 20 45 78 70 72 65 LayerName( Expre
2800: 73 73 69 6f 6e 20 29 20 65 78 65 63 75 74 65 73 ssion ) executes
2810: 20 74 68 65 20 69 6e 6e 65 72 20 45 78 70 72 65 the inner Expre
2820: 73 73 69 6f 6e 20 69 6e 0a 20 20 74 68 65 20 40 ssion in. the @
2830: 4c 61 79 65 72 4e 61 6d 65 20 6c 61 79 65 72 2e LayerName layer.
2840: 20 4f 74 68 65 72 20 74 68 61 6e 20 40 76 61 6c Other than @val
2850: 75 65 2c 20 6f 6e 65 20 6f 74 68 65 72 20 70 72 ue, one other pr
2860: 65 64 65 66 69 6e 65 64 20 6c 61 79 65 72 20 65 edefined layer e
2870: 78 69 73 74 73 3a 20 40 6d 61 63 72 6f 2e 0a 0a xists: @macro...
2880: 20 20 20 20 3e 3e 20 40 6d 61 63 72 6f 28 20 31 >> @macro( 1
2890: 2b 32 20 29 0a 20 20 20 20 7b 70 6f 73 40 76 61 +2 ). {pos@va
28a0: 6c 75 65 3a 7b 6c 69 6e 65 6e 6f 40 76 61 6c 75 lue:{lineno@valu
28b0: 65 3a 33 2c 20 63 6f 6c 75 6d 6e 40 76 61 6c 75 e:3, column@valu
28c0: 65 3a 39 2c 20 66 69 6c 65 6e 61 6d 65 40 76 61 e:9, filename@va
28d0: 6c 75 65 3a 3c 52 45 50 4c 3e 7d 2c 0a 20 20 20 lue:<REPL>},.
28e0: 20 20 20 69 73 40 76 61 6c 75 65 3a 61 70 70 2c is@value:app,
28f0: 0a 20 20 20 20 61 72 67 73 40 76 61 6c 75 65 3a . args@value:
2900: 7b 63 61 72 40 76 61 6c 75 65 3a 7b 70 6f 73 40 {car@value:{pos@
2910: 76 61 6c 75 65 3a 7b 6c 69 6e 65 6e 6f 40 76 61 value:{lineno@va
2920: 6c 75 65 3a 33 2c 20 63 6f 6c 75 6d 6e 40 76 61 lue:3, column@va
2930: 6c 75 65 3a 39 2c 20 66 69 6c 65 6e 61 6d 65 40 lue:9, filename@
2940: 76 61 6c 75 65 3a 3c 52 45 50 4c 3e 7d 2c 0a 20 value:<REPL>},.
2950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2960: 20 20 20 20 20 20 20 20 20 20 20 69 73 40 76 61 is@va
2970: 6c 75 65 3a 69 6e 74 2c 0a 20 20 20 20 20 20 20 lue:int,.
2980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2990: 20 20 20 64 61 74 61 40 76 61 6c 75 65 3a 31 7d data@value:1}
29a0: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.
29b0: 20 20 63 64 72 40 76 61 6c 75 65 3a 7b 0a 20 20 cdr@value:{.
29c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
29d0: 63 61 72 40 76 61 6c 75 65 3a 7b 70 6f 73 40 76 car@value:{pos@v
29e0: 61 6c 75 65 3a 7b 6c 69 6e 65 6e 6f 40 76 61 6c alue:{lineno@val
29f0: 75 65 3a 33 2c 20 63 6f 6c 75 6d 6e 40 76 61 6c ue:3, column@val
2a00: 75 65 3a 31 31 2c 20 66 69 6c 65 6e 61 6d 65 40 ue:11, filename@
2a10: 76 61 6c 75 65 3a 3c 52 45 50 4c 3e 7d 2c 0a 20 value:<REPL>},.
2a20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a30: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 40 is@
2a40: 76 61 6c 75 65 3a 69 6e 74 2c 0a 20 20 20 20 20 value:int,.
2a50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
2a60: 20 20 20 20 20 20 20 64 61 74 61 40 76 61 6c 75 data@valu
2a70: 65 3a 32 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 e:2},.
2a80: 20 20 20 20 20 20 20 20 63 64 72 40 76 61 6c 75 cdr@valu
2a90: 65 3a 7b 7d 7d 7d 2c 0a 20 20 20 20 20 66 75 6e e:{}}},. fun
2aa0: 40 76 61 6c 75 65 3a 7b 70 6f 73 40 76 61 6c 75 @value:{pos@valu
2ab0: 65 3a 7b 6c 69 6e 65 6e 6f 40 76 61 6c 75 65 3a e:{lineno@value:
2ac0: 33 2c 20 63 6f 6c 75 6d 6e 40 76 61 6c 75 65 3a 3, column@value:
2ad0: 31 30 2c 20 66 69 6c 65 6e 61 6d 65 40 76 61 6c 10, filename@val
2ae0: 75 65 3a 3c 52 45 50 4c 3e 7d 2c 0a 20 20 20 20 ue:<REPL>},.
2af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 40 is@
2b00: 76 61 6c 75 65 3a 76 61 72 2c 0a 20 20 20 20 20 value:var,.
2b10: 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 40 76 name@v
2b20: 61 6c 75 65 3a 2b 7d 7d 0a 0a 20 20 28 53 6f 72 alue:+}}.. (Sor
2b30: 72 79 2c 20 74 68 69 73 20 70 72 65 74 74 79 20 ry, this pretty
2b40: 70 72 69 6e 74 69 6e 67 20 69 73 20 6e 6f 74 20 printing is not
2b50: 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 74 68 65 available on the
2b60: 20 61 63 74 75 61 6c 20 69 6e 74 65 72 70 72 65 actual interpre
2b70: 74 65 72 2e 2e 2e 29 0a 20 20 54 68 69 73 20 65 ter...). This e
2b80: 76 61 6c 75 61 74 65 73 20 74 68 65 20 65 78 70 valuates the exp
2b90: 72 65 73 73 69 6f 6e 20 31 2b 32 20 69 6e 20 74 ression 1+2 in t
2ba0: 68 65 20 40 6d 61 63 72 6f 20 6c 61 79 65 72 2e he @macro layer.
2bb0: 20 49 6e 20 74 68 69 73 20 6c 61 79 65 72 2c 20 In this layer,
2bc0: 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 0a 20 the meaning of.
2bd0: 20 74 68 65 20 70 72 6f 67 72 61 6d 20 69 73 20 the program is
2be0: 69 74 73 20 61 62 73 74 72 61 63 74 20 73 79 6e its abstract syn
2bf0: 74 61 78 20 74 72 65 65 2e 0a 0a 20 20 59 6f 75 tax tree... You
2c00: 20 63 61 6e 20 69 6e 74 65 72 6c 65 61 76 65 20 can interleave
2c10: 6c 61 79 65 72 73 2e 0a 20 20 54 68 65 20 72 6f layers.. The ro
2c20: 6f 74 20 6e 6f 64 65 20 6f 66 20 74 68 65 20 61 ot node of the a
2c30: 62 73 74 72 61 63 74 20 73 79 6e 74 61 78 20 74 bstract syntax t
2c40: 72 65 65 20 69 73 20 66 75 6e 63 74 69 6f 6e 20 ree is function
2c50: 22 61 70 70 22 6c 69 63 61 74 69 6f 6e 2e 0a 0a "app"lication...
2c60: 20 20 20 20 3e 3e 20 40 76 61 6c 75 65 28 40 6d >> @value(@m
2c70: 61 63 72 6f 28 20 31 2b 32 20 29 2e 69 73 29 0a acro( 1+2 ).is).
2c80: 20 20 20 20 61 70 70 0a 0a 0a 0a 5b 4c 61 79 65 app....[Laye
2c90: 72 73 20 3a 3a 20 44 65 66 69 6e 69 6e 67 20 61 rs :: Defining a
2ca0: 20 6e 65 77 20 6c 61 79 65 72 5d 0a 0a 20 20 54 new layer].. T
2cb0: 6f 20 64 65 66 69 6e 65 20 61 20 6e 65 77 20 6c o define a new l
2cc0: 61 79 65 72 2c 20 79 6f 75 20 73 68 6f 75 6c 64 ayer, you should
2cd0: 20 66 69 72 73 74 20 74 65 6c 6c 20 68 6f 77 20 first tell how
2ce0: 74 6f 20 22 6c 69 66 74 22 20 65 78 69 73 74 69 to "lift" existi
2cf0: 6e 67 20 76 61 6c 75 65 73 20 74 77 6f 20 74 68 ng values two th
2d00: 65 20 6e 65 77 20 6c 61 79 65 72 2e 0a 20 20 4c e new layer.. L
2d10: 65 74 20 75 73 20 64 65 66 69 6e 65 20 74 68 65 et us define the
2d20: 20 22 40 74 79 70 65 22 20 6c 61 79 65 72 2c 20 "@type" layer,
2d30: 77 68 65 72 65 20 74 68 65 20 6d 65 61 6e 69 6e where the meanin
2d40: 67 20 6f 66 20 70 72 6f 67 72 61 6d 73 20 69 73 g of programs is
2d50: 20 74 68 65 69 72 20 73 74 61 74 69 63 20 74 79 their static ty
2d60: 70 65 2e 0a 0a 20 20 20 20 3e 3e 20 40 40 74 79 pe... >> @@ty
2d70: 70 65 20 3d 20 66 75 6e 28 78 29 20 7b 0a 20 20 pe = fun(x) {.
2d80: 20 20 3e 3e 20 20 20 69 66 28 20 5f 69 73 69 6e >> if( _isin
2d90: 74 28 78 29 20 29 20 7b 20 22 69 6e 74 22 20 7d t(x) ) { "int" }
2da0: 20 65 6c 73 65 20 7b 0a 20 20 20 20 3e 3e 20 20 else {. >>
2db0: 20 69 66 28 20 5f 69 73 66 75 6e 28 78 29 20 29 if( _isfun(x) )
2dc0: 20 7b 20 78 20 7d 20 65 6c 73 65 20 7b 20 22 75 { x } else { "u
2dd0: 6e 6b 6e 6f 77 6e 22 20 7d 20 7d 0a 20 20 20 20 nknown" } }.
2de0: 3e 3e 20 7d 0a 20 20 20 20 28 4e 6f 74 65 3a 20 >> }. (Note:
2df0: 70 6f 6c 65 6d 79 20 52 45 50 4c 20 6d 61 79 20 polemy REPL may
2e00: 77 61 72 6e 20 73 6f 6d 65 20 65 78 63 65 70 74 warn some except
2e10: 69 6f 6e 20 68 65 72 65 20 62 75 74 20 70 6c 65 ion here but ple
2e20: 61 73 65 20 69 67 6e 6f 72 65 29 0a 0a 20 20 46 ase ignore).. F
2e30: 6f 72 20 73 69 6d 70 6c 69 63 69 74 79 2c 20 49 or simplicity, I
2e40: 20 68 65 72 65 20 64 65 61 6c 20 6f 6e 6c 79 20 here deal only
2e50: 77 69 74 68 20 69 6e 74 65 67 65 72 73 2e 0a 20 with integers..
2e60: 20 5f 69 73 69 6e 74 20 69 73 20 61 20 70 72 69 _isint is a pri
2e70: 6d 69 74 69 76 65 20 66 75 6e 63 74 69 6f 6e 20 mitive function
2e80: 6f 66 20 50 6f 6c 65 6d 79 20 74 68 61 74 20 63 of Polemy that c
2e90: 68 65 63 6b 73 20 74 68 65 20 64 79 6e 61 6d 69 hecks the dynami
2ea0: 63 20 74 79 70 65 20 6f 66 20 61 20 76 61 6c 75 c type of a valu
2eb0: 65 2e 0a 20 20 46 6f 72 20 66 75 6e 63 74 69 6f e.. For functio
2ec0: 6e 2c 20 6c 65 61 76 69 6e 67 20 69 74 20 75 6e n, leaving it un
2ed0: 74 6f 75 63 68 65 64 20 77 6f 72 6b 73 20 77 65 touched works we
2ee0: 6c 6c 20 66 6f 72 20 61 6c 6d 6f 73 74 20 61 6c ll for almost al
2ef0: 6c 20 6c 61 79 65 72 73 2e 0a 0a 20 20 20 20 3e l layers... >
2f00: 3e 20 40 74 79 70 65 28 20 31 20 29 0a 20 20 20 > @type( 1 ).
2f10: 20 69 6e 74 0a 20 20 20 20 3e 3e 20 40 74 79 70 int. >> @typ
2f20: 65 28 20 32 20 29 0a 20 20 20 20 69 6e 74 0a 20 e( 2 ). int.
2f30: 20 20 20 3e 3e 20 40 74 79 70 65 28 20 22 66 6f >> @type( "fo
2f40: 6f 22 20 29 0a 20 20 20 20 75 6e 6b 6e 6f 77 6e o" ). unknown
2f50: 0a 0a 20 20 46 69 6e 65 21 20 4c 65 74 27 73 20 .. Fine! Let's
2f60: 74 72 79 20 74 6f 20 74 79 70 65 20 31 2b 32 2e try to type 1+2.
2f70: 0a 0a 20 20 20 20 3e 3e 20 40 74 79 70 65 28 20 .. >> @type(
2f80: 31 20 2b 20 32 20 29 0a 20 20 20 20 2e 2e 2e 5c 1 + 2 ). ...\
2f90: 76 61 6c 75 65 2e 64 28 31 31 39 29 3a 20 5b 3c value.d(119): [<
2fa0: 52 45 50 4c 3e 3a 36 3a 38 5d 20 6f 6e 6c 79 20 REPL>:6:8] only
2fb0: 40 76 61 6c 75 65 20 6c 61 79 65 72 20 63 61 6e @value layer can
2fc0: 20 63 61 6c 6c 20 6e 61 74 69 76 65 20 66 75 6e call native fun
2fd0: 63 74 69 6f 6e 0a 0a 20 20 4e 6f 74 65 20 74 68 ction.. Note th
2fe0: 61 74 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 at the behavior
2ff0: 6f 66 20 74 68 69 73 20 70 72 6f 67 72 61 6d 20 of this program
3000: 69 73 0a 20 20 20 20 2d 20 72 75 6e 20 31 2b 32 is. - run 1+2
3010: 20 69 6e 20 74 68 65 20 40 74 79 70 65 20 6c 61 in the @type la
3020: 79 65 72 0a 20 20 61 6e 64 20 4e 4f 54 0a 20 20 yer. and NOT.
3030: 20 20 2d 20 72 75 6e 20 31 2b 32 20 69 6e 20 40 - run 1+2 in @
3040: 76 61 6c 75 65 20 61 6e 64 20 6f 62 74 61 69 6e value and obtain
3050: 20 33 20 61 6e 64 20 72 75 6e 20 33 20 69 6e 20 3 and run 3 in
3060: 74 68 65 20 40 74 79 70 65 2e 0a 20 20 54 68 65 the @type.. The
3070: 20 70 72 6f 62 6c 65 6d 20 69 73 2c 20 74 68 65 problem is, the
3080: 20 76 61 72 69 61 62 6c 65 20 22 2b 22 20 69 73 variable "+" is
3090: 20 64 65 66 69 6e 65 64 20 6f 6e 6c 79 20 69 6e defined only in
30a0: 20 74 68 65 20 40 76 61 6c 75 65 20 6c 61 79 65 the @value laye
30b0: 72 2e 0a 20 20 54 6f 20 63 61 72 72 79 20 6f 75 r.. To carry ou
30c0: 74 20 63 6f 6d 70 75 74 61 74 69 6f 6e 20 69 6e t computation in
30d0: 20 74 68 65 20 40 74 79 70 65 20 6c 61 79 65 72 the @type layer
30e0: 2e 20 57 65 20 6e 65 65 64 20 74 6f 20 64 65 66 . We need to def
30f0: 69 6e 65 20 69 74 20 61 6c 73 6f 0a 20 20 69 6e ine it also. in
3100: 20 74 68 65 20 40 74 79 70 65 20 6c 61 79 65 72 the @type layer
3110: 2e 0a 0a 20 20 54 6f 20 64 65 66 69 6e 65 20 73 ... To define s
3120: 6f 6d 65 20 76 61 72 69 61 62 6c 65 20 69 6e 20 ome variable in
3130: 61 20 73 70 65 63 69 66 69 63 20 6c 61 79 65 72 a specific layer
3140: 2c 20 75 73 65 20 40 4c 61 79 65 72 4e 61 6d 65 , use @LayerName
3150: 20 69 6e 20 70 6c 61 63 65 20 6f 66 0a 20 20 28 in place of. (
3160: 6c 65 74 7c 76 61 72 7c 64 65 66 29 73 2e 0a 0a let|var|def)s...
3170: 20 20 20 20 3e 3e 20 6c 65 74 20 78 20 3d 20 32 >> let x = 2
3180: 0a 20 20 20 20 3e 3e 20 40 76 61 6c 75 65 20 78 . >> @value x
3190: 20 3d 20 32 0a 20 20 20 20 3e 3e 20 40 74 79 70 = 2. >> @typ
31a0: 65 20 78 20 3d 20 22 69 6e 74 22 0a 20 20 20 20 e x = "int".
31b0: 3e 3e 20 40 68 6f 67 65 20 78 20 3d 20 22 66 75 >> @hoge x = "fu
31c0: 67 61 22 0a 0a 20 20 46 6f 72 20 22 2b 22 2c 20 ga".. For "+",
31d0: 64 6f 20 69 74 20 6c 69 6b 65 20 74 68 69 73 2e do it like this.
31e0: 0a 0a 20 20 20 20 3e 3e 20 40 74 79 70 65 20 22 .. >> @type "
31f0: 2b 22 20 3d 20 66 75 6e 28 78 2c 79 29 20 7b 40 +" = fun(x,y) {@
3200: 76 61 6c 75 65 28 0a 20 20 20 20 3e 3e 20 20 20 value(. >>
3210: 69 66 28 20 40 74 79 70 65 28 78 29 3d 3d 22 69 if( @type(x)=="i
3220: 6e 74 22 20 26 26 20 40 74 79 70 65 28 79 29 3d nt" && @type(y)=
3230: 3d 22 69 6e 74 22 20 29 20 7b 20 22 69 6e 74 22 ="int" ) { "int"
3240: 20 7d 20 65 6c 73 65 20 7b 20 22 74 79 70 65 65 } else { "typee
3250: 72 72 6f 72 22 20 7d 0a 20 20 20 20 3e 3e 20 29 rror" }. >> )
3260: 7d 0a 20 20 20 20 70 6f 6c 65 6d 79 2e 76 61 6c }. polemy.val
3270: 75 65 2e 6e 61 74 69 76 65 21 28 49 6e 74 56 61 ue.native!(IntVa
3280: 6c 75 65 2c 49 6e 74 56 61 6c 75 65 2c 49 6e 74 lue,IntValue,Int
3290: 56 61 6c 75 65 29 2e 6e 61 74 69 76 65 2e 5f 5f Value).native.__
32a0: 61 6e 6f 6e 63 6c 61 73 73 32 34 0a 0a 20 20 49 anonclass24.. I
32b0: 74 20 69 73 20 6a 75 73 74 20 63 6f 6d 70 75 74 t is just comput
32c0: 69 6e 67 20 74 68 65 20 72 65 74 75 72 6e 20 74 ing the return t
32d0: 79 70 65 20 66 72 6f 6d 20 74 68 65 20 69 6e 70 ype from the inp
32e0: 75 74 20 74 79 70 65 2e 0a 20 20 4e 6f 74 20 68 ut type.. Not h
32f0: 65 72 65 20 74 68 61 74 20 74 68 65 20 69 6e 74 ere that the int
3300: 65 6e 64 65 64 20 22 6d 65 61 6e 69 6e 67 22 20 ended "meaning"
3310: 6f 66 20 69 66 2d 74 68 65 6e 2d 65 6c 73 65 20 of if-then-else
3320: 69 73 20 74 68 65 20 72 75 6e 74 69 6d 65 2d 62 is the runtime-b
3330: 72 61 6e 63 68 69 6e 67 2c 0a 20 20 61 6e 64 20 ranching,. and
3340: 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 22 the meaning of "
3350: 3d 3d 22 20 69 73 20 74 68 65 20 76 61 6c 75 65 ==" is the value
3360: 2d 63 6f 6d 70 61 72 69 73 6f 6e 2e 20 54 68 65 -comparison. The
3370: 73 65 20 61 72 65 20 74 68 65 20 40 76 61 6c 75 se are the @valu
3380: 65 20 6c 61 79 65 72 0a 20 20 62 65 68 61 76 69 e layer. behavi
3390: 6f 72 2e 20 53 6f 20 77 65 20 68 61 76 65 20 64 or. So we have d
33a0: 65 66 69 6e 65 64 20 74 68 65 20 66 75 6e 63 74 efined the funct
33b0: 69 6f 6e 20 62 6f 64 79 20 69 6e 73 69 64 65 20 ion body inside
33c0: 40 76 61 6c 75 65 20 6c 61 79 65 72 2e 0a 20 20 @value layer..
33d0: 42 75 74 20 77 68 65 6e 20 77 65 20 72 65 66 65 But when we refe
33e0: 72 20 74 68 65 20 76 61 72 69 61 62 6c 65 73 20 r the variables
33f0: 78 20 61 6e 64 20 79 2c 20 77 65 20 6e 65 65 64 x and y, we need
3400: 20 69 74 73 20 40 74 79 70 65 20 6c 61 79 65 72 its @type layer
3410: 20 6d 65 61 6e 69 6e 67 2e 0a 20 20 48 65 6e 63 meaning.. Henc
3420: 65 20 77 65 20 75 73 65 20 40 74 79 70 65 28 29 e we use @type()
3430: 20 74 68 65 72 65 2e 0a 0a 20 20 4e 6f 77 20 77 there... Now w
3440: 65 20 67 65 74 20 69 74 2e 0a 0a 20 20 20 20 3e e get it... >
3450: 3e 20 40 74 79 70 65 28 20 31 20 2b 20 32 20 29 > @type( 1 + 2 )
3460: 0a 20 20 20 20 69 6e 74 0a 0a 20 20 57 65 6c 6c . int.. Well
3470: 2c 20 62 75 74 20 64 6f 20 77 65 20 68 61 76 65 , but do we have
3480: 20 74 6f 20 64 65 66 69 6e 65 20 74 68 65 20 40 to define the @
3490: 74 79 70 65 20 6c 61 79 65 72 20 6d 65 61 6e 69 type layer meani
34a0: 6e 67 20 66 6f 72 20 65 76 65 72 79 20 76 61 72 ng for every var
34b0: 69 61 62 6c 65 73 3f 3f 3f 0a 20 20 4e 6f 2e 20 iables???. No.
34c0: 41 66 74 65 72 20 79 6f 75 20 64 65 66 69 6e 65 After you define
34d0: 64 20 40 74 79 70 65 20 22 2b 22 2c 20 79 6f 75 d @type "+", you
34e0: 27 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 'll automaticall
34f0: 79 20 67 65 74 20 74 68 65 20 66 6f 6c 6c 6f 77 y get the follow
3500: 69 6e 67 3a 0a 0a 20 20 20 20 3e 3e 20 64 65 66 ing:.. >> def
3510: 20 64 6f 75 62 6c 65 28 78 29 20 7b 20 78 20 2b double(x) { x +
3520: 20 78 20 7d 0a 20 20 20 20 28 66 75 6e 63 74 69 x }. (functi
3530: 6f 6e 3a 31 37 65 34 37 34 30 3a 31 37 38 39 37 on:17e4740:17897
3540: 32 30 29 0a 0a 20 20 20 20 3e 3e 20 40 74 79 70 20).. >> @typ
3550: 65 28 20 64 6f 75 62 6c 65 28 31 32 33 29 20 29 e( double(123) )
3560: 0a 20 20 20 20 69 6e 74 0a 0a 20 20 45 76 65 72 . int.. Ever
3570: 79 20 75 73 65 72 2d 64 65 66 69 6e 65 64 20 66 y user-defined f
3580: 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 61 75 74 unctions are aut
3590: 6f 6d 61 74 69 63 61 6c 6c 79 20 22 6c 69 66 74 omatically "lift
35a0: 22 65 64 20 74 6f 20 74 68 65 20 61 70 70 72 6f "ed to the appro
35b0: 70 72 69 61 74 65 20 6c 61 79 65 72 2e 0a 20 20 priate layer..
35c0: 4f 6e 6c 79 20 70 72 69 6d 69 74 69 76 65 20 66 Only primitive f
35d0: 75 6e 63 74 69 6f 6e 73 20 6c 69 6b 65 20 22 2b unctions like "+
35e0: 22 20 72 65 71 75 69 72 65 73 20 40 79 6f 75 72 " requires @your
35f0: 4e 65 77 4c 61 79 65 72 20 61 6e 6e 6f 74 61 74 NewLayer annotat
3600: 69 6f 6e 2e 0a 0a 0a 0a 5b 4c 61 79 65 72 73 20 ion.....[Layers
3610: 3a 3a 20 6e 65 75 74 72 61 6c 2d 6c 61 79 65 72 :: neutral-layer
3620: 5d 0a 0a 20 20 6c 65 74 7c 76 61 72 7c 64 65 66 ].. let|var|def
3630: 20 69 73 20 74 6f 20 64 65 66 69 6e 65 20 61 20 is to define a
3640: 76 61 72 69 61 62 6c 65 20 69 6e 20 74 68 65 20 variable in the
3650: 22 63 75 72 72 65 6e 74 22 20 6c 61 79 65 72 2e "current" layer.
3660: 0a 20 20 4e 6f 74 20 6e 65 63 65 73 73 61 72 79 . Not necessary
3670: 20 74 6f 20 74 68 65 20 40 76 61 6c 75 65 20 6c to the @value l
3680: 61 79 65 72 2e 0a 0a 20 20 20 20 3e 3e 20 40 76 ayer... >> @v
3690: 61 6c 75 65 28 20 6c 65 74 20 78 20 3d 20 31 20 alue( let x = 1
36a0: 69 6e 20 40 76 61 6c 75 65 28 78 29 20 29 0a 20 in @value(x) ).
36b0: 20 20 20 31 0a 0a 20 20 20 20 3e 3e 20 40 6d 61 1.. >> @ma
36c0: 63 72 6f 28 20 6c 65 74 20 78 20 3d 20 31 20 69 cro( let x = 1 i
36d0: 6e 20 40 76 61 6c 75 65 28 78 29 20 29 0a 20 20 n @value(x) ).
36e0: 20 20 70 6f 6c 65 6d 79 2e 66 61 69 6c 75 72 65 polemy.failure
36f0: 2e 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f .RuntimeExceptio
3700: 6e 3a 20 5b 3c 52 45 50 4c 3e 3a 31 34 3a 32 39 n: [<REPL>:14:29
3710: 5d 20 76 61 72 69 61 62 6c 65 20 78 20 6e 6f 74 ] variable x not
3720: 20 66 6f 75 6e 64 0a 0a 20 20 20 20 3e 3e 20 40 found.. >> @
3730: 6d 61 63 72 6f 28 20 6c 65 74 20 78 20 3d 20 31 macro( let x = 1
3740: 20 69 6e 20 40 6d 61 63 72 6f 28 78 29 20 29 0a in @macro(x) ).
3750: 20 20 20 20 7b 70 6f 73 40 76 61 6c 75 65 3a 7b {pos@value:{
3760: 6c 69 6e 65 6e 6f 40 76 61 6c 75 65 3a 31 35 2c lineno@value:15,
3770: 20 2e 2e 2e 0a 0a 0a 0a 5b 4c 61 79 65 72 73 20 .......[Layers
3780: 3a 3a 20 4c 61 79 65 72 65 64 2d 50 61 72 61 6d :: Layered-Param
3790: 65 74 65 72 73 5d 0a 0a 20 20 20 20 3e 3e 20 64 eters].. >> d
37a0: 65 66 20 66 6f 6f 28 78 20 40 6d 61 63 72 6f 20 ef foo(x @macro
37b0: 40 76 61 6c 75 65 29 20 7b 20 7b 66 73 74 3a 20 @value) { {fst:
37c0: 78 2c 20 73 6e 64 3a 20 40 6d 61 63 72 6f 28 78 x, snd: @macro(x
37d0: 29 7d 20 7d 0a 20 20 20 20 28 66 75 6e 63 74 69 )} }. (functi
37e0: 6f 6e 3a 31 37 33 30 33 36 30 3a 31 37 38 39 37 on:1730360:17897
37f0: 32 30 29 0a 0a 20 20 49 66 20 79 6f 75 20 61 6e 20).. If you an
3800: 6e 6f 74 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 notate function
3810: 70 61 72 61 6d 65 74 65 72 73 20 62 79 20 40 4c parameters by @L
3820: 61 79 65 72 4e 61 6d 65 73 2c 20 77 68 65 6e 20 ayerNames, when
3830: 79 6f 75 20 69 6e 76 6f 6b 65 20 74 68 65 20 66 you invoke the f
3840: 75 6e 63 74 69 6f 6e 2e 2e 2e 0a 0a 20 20 20 20 unction.....
3850: 3e 3e 20 66 6f 6f 28 31 2b 32 29 0a 20 20 20 20 >> foo(1+2).
3860: 7b 73 6e 64 40 76 61 6c 75 65 3a 20 7b 70 6f 73 {snd@value: {pos
3870: 40 76 61 6c 75 65 3a 7b 6c 69 6e 65 6e 6f 40 76 @value:{lineno@v
3880: 61 6c 75 65 3a 31 37 2c 20 63 6f 6c 75 6d 6e 40 alue:17, column@
3890: 76 61 6c 75 65 3a 35 2c 20 66 69 6c 65 6e 61 6d value:5, filenam
38a0: 65 40 76 61 6c 75 65 3a 3c 52 45 50 4c 3e 7d 2c e@value:<REPL>},
38b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
38c0: 20 20 20 69 73 40 76 61 6c 75 65 3a 61 70 70 2c is@value:app,
38d0: 20 61 72 67 40 76 61 6c 75 65 3a 7b 2e 2e 2e 0a arg@value:{....
38e0: 20 20 20 20 2f 66 73 74 40 76 61 6c 75 65 3a 33 /fst@value:3
38f0: 0a 20 20 20 20 2f 7d 0a 0a 20 20 69 74 73 20 63 . /}.. its c
3900: 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 61 72 67 orresponding arg
3910: 75 6d 65 6e 74 73 20 61 72 65 20 65 76 61 6c 75 uments are evalu
3920: 61 74 65 64 20 69 6e 20 74 68 65 20 6c 61 79 65 ated in the laye
3930: 72 20 61 6e 64 20 70 61 73 73 65 64 20 74 6f 20 r and passed to
3940: 69 74 2e 0a 20 20 49 66 20 79 6f 75 20 73 70 65 it.. If you spe
3950: 63 69 66 79 20 6d 75 6c 74 69 70 6c 65 20 6c 61 cify multiple la
3960: 79 65 72 73 2c 20 74 68 65 20 61 72 67 75 6d 65 yers, the argume
3970: 6e 74 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 nt expression is
3980: 20 72 75 6e 20 6d 75 6c 74 69 70 6c 65 20 74 69 run multiple ti
3990: 6d 65 73 2e 0a 20 20 49 66 20 79 6f 75 20 64 6f mes.. If you do
39a0: 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 6e 79 not specify any
39b0: 20 6c 61 79 65 72 20 66 6f 72 20 61 20 70 61 72 layer for a par
39c0: 61 6d 65 74 65 72 2c 20 69 74 20 77 6f 72 6b 73 ameter, it works
39d0: 20 69 6e 20 74 68 65 20 6e 65 75 74 72 61 6c 20 in the neutral
39e0: 6c 61 79 65 72 2e 0a 3c 2f 70 72 65 3e 0a 29 29 layer..</pre>.))
39f0: 0a 0a 0a 24 28 53 45 43 54 49 4f 4e 20 4d 61 63 ...$(SECTION Mac
3a00: 72 6f 20 4c 61 79 65 72 73 2c 20 24 28 53 45 43 ro Layers, $(SEC
3a10: 42 4f 44 59 0a 3c 70 3e 0a 50 6f 6c 65 6d 79 20 BODY.<p>.Polemy
3a20: e8 a8 80 e8 aa 9e e7 b5 84 e3 81 bf e8 be bc e3 ................
3a30: 81 bf e3 81 ae e3 83 ac e3 82 a4 e3 83 a4 e3 81 ................
3a40: af 20 3c 63 6f 64 65 3e 40 76 61 6c 75 65 3c 2f . <code>@value</
3a50: 63 6f 64 65 3e 20 e3 81 a8 20 3c 63 6f 64 65 3e code> ... <code>
3a60: 40 6d 61 63 72 6f 3c 2f 63 6f 64 65 3e 20 e3 81 @macro</code> ..
3a70: ae e4 ba 8c e3 81 a4 e3 81 a7 e3 81 99 e3 80 82 ................
3a80: 0a ef bc 88 e5 86 85 e9 83 a8 e7 9a 84 e3 81 ab ................
3a90: e3 81 af e3 82 82 e3 81 86 e3 81 84 e3 81 8f e3 ................
3aa0: 81 a4 e3 81 8b e3 81 82 e3 82 8a e3 81 be e3 81 ................
3ab0: 99 e3 81 8c e3 80 81 e3 83 a6 e3 83 bc e3 82 b6 ................
3ac0: e3 81 8b e3 82 89 e7 9b b4 e6 8e a5 e3 81 af e4 ................
3ad0: bd bf e3 81 88 e3 81 be e3 81 9b e3 82 93 e3 80 ................
3ae0: 82 ef bc 89 0a 3c 63 6f 64 65 3e 40 76 61 6c 75 .....<code>@valu
3af0: 65 3c 2f 63 6f 64 65 3e 20 e3 81 af e3 80 81 e3 e</code> .......
3b00: 80 8c e6 99 ae e9 80 9a e3 81 ab e3 80 8d e6 99 ................
3b10: ae e9 80 9a e3 81 ae e3 82 bb e3 83 9e e3 83 b3 ................
3b20: e3 83 86 e3 82 a3 e3 82 af e3 82 b9 e3 81 a7 e3 ................
3b30: 83 97 e3 83 ad e3 82 b0 e3 83 a9 e3 83 a0 e3 82 ................
3b40: 92 e5 ae 9f e8 a1 8c e3 81 99 e3 82 8b e3 83 ac ................
3b50: e3 82 a4 e3 83 a4 e3 81 a7 e3 81 97 e3 81 9f e3 ................
3b60: 80 82 0a 3c 63 6f 64 65 3e 40 6d 61 63 72 6f 3c ...<code>@macro<
3b70: 2f 63 6f 64 65 3e 20 e3 81 af e3 80 81 e5 ae 9f /code> .........
3b80: e3 81 af e3 80 81 3c 63 6f 64 65 3e 40 76 61 6c ......<code>@val
3b90: 75 65 3c 2f 63 6f 64 65 3e 20 e3 82 88 e3 82 8a ue</code> ......
3ba0: e3 82 82 e5 89 8d e3 81 ab e5 ae 9f e8 a1 8c e3 ................
3bb0: 81 95 e3 82 8c e3 82 8b e3 83 ac e3 82 a4 e3 83 ................
3bc0: a4 e3 81 a7 e3 80 81 0a e3 80 8c e3 83 97 e3 83 ................
3bd0: ad e3 82 b0 e3 83 a9 e3 83 a0 e3 82 92 e5 ae 9f ................
3be0: e8 a1 8c e3 81 99 e3 82 8b e3 81 a8 e3 81 9d e3 ................
3bf0: 81 ae e6 a7 8b e6 96 87 e6 9c a8 e3 82 92 e8 bf ................
3c00: 94 e3 81 99 e3 80 8d e3 81 a8 e3 81 84 e3 81 86 ................
3c10: e3 82 bb e3 83 9e e3 83 b3 e3 83 86 e3 82 a3 e3 ................
3c20: 82 af e3 82 b9 e3 81 a7 e5 8b 95 e3 81 8d e3 81 ................
3c30: be e3 81 99 e3 80 82 0a 3c 2f 70 3e 0a 3c 70 72 ........</p>.<pr
3c40: 65 3e 0a 20 20 20 20 28 e3 81 93 e3 81 93 e3 81 e>. (........
3c50: ab e4 be 8b 29 0a 3c 2f 70 72 65 3e 0a 3c 70 3e ....).</pre>.<p>
3c60: 0a e5 8b 95 e3 81 8d e3 81 a8 e3 81 97 e3 81 a6 ................
3c70: e3 81 af e3 81 93 e3 81 86 e3 81 a7 e3 81 99 e3 ................
3c80: 80 82 0a 3c 2f 70 3e 0a 3c 6f 6c 3e 0a 3c 6c 69 ...</p>.<ol>.<li
3c90: 3e e9 96 a2 e6 95 b0 e5 91 bc e3 81 b3 e5 87 ba >...............
3ca0: e3 81 97 e6 99 82 ef bc 88 e3 81 a8 e3 83 88 e3 ................
3cb0: 83 83 e3 83 97 e3 83 ac e3 83 99 e3 83 ab e7 92 ................
3cc0: b0 e5 a2 83 e3 81 ae e5 ae 9f e8 a1 8c e9 96 8b ................
3cd0: e5 a7 8b e6 99 82 ef bc 89 e3 81 ab e3 80 81 0a ................
3ce0: 09 e3 81 be e3 81 9a e3 80 81 3c 63 6f 64 65 3e ..........<code>
3cf0: 40 6d 61 63 72 6f 3c 2f 63 6f 64 65 3e 20 e3 83 @macro</code> ..
3d00: ac e3 82 a4 e3 83 a4 e3 81 a7 e3 82 b3 e3 83 bc ................
3d10: e3 83 89 e3 82 92 e5 ae 9f e8 a1 8c e3 80 82 3c ...............<
3d20: 2f 6c 69 3e 0a 3c 6c 69 3e e8 bf 94 e3 81 a3 e3 /li>.<li>.......
3d30: 81 a6 e3 81 8d e3 81 9f e6 a7 8b e6 96 87 e6 9c ................
3d40: a8 e3 82 92 e3 80 81 3c 63 6f 64 65 3e 40 76 61 .......<code>@va
3d50: 6c 75 65 3c 2f 63 6f 64 65 3e 20 e3 83 ac e3 82 lue</code> .....
3d60: a4 e3 83 a4 e3 80 81 0a 09 e3 81 be e3 81 9f e3 ................
3d70: 81 af e3 81 9d e3 81 ae e9 96 a2 e6 95 b0 e3 82 ................
3d80: 92 e5 91 bc e3 81 b3 e5 87 ba e3 81 97 e3 81 9f ................
3d90: e3 81 a8 e3 81 8d e3 81 ae e3 83 ac e3 82 a4 e3 ................
3da0: 83 a4 e3 81 a7 e5 ae 9f e8 a1 8c e3 80 82 3c 2f ..............</
3db0: 6c 69 3e 0a 3c 2f 6f 6c 3e 0a 3c 70 3e 0a 3c 63 li>.</ol>.<p>.<c
3dc0: 6f 64 65 3e 40 6d 61 63 72 6f 3c 2f 63 6f 64 65 ode>@macro</code
3dd0: 3e 20 e3 83 ac e3 82 a4 e3 83 a4 e3 82 82 e6 89 > ..............
3de0: 80 e8 a9 ae e3 81 9f e3 81 a0 e3 81 ae e3 83 ac ................
3df0: e3 82 a4 e3 83 a4 e3 81 a7 e3 81 99 e3 81 ae e3 ................
3e00: 81 a7 e3 80 81 0a e4 b8 8a e3 81 a7 e8 aa ac e6 ................
3e10: 98 8e e3 81 97 e3 81 9f e6 96 b9 e6 b3 95 e3 81 ................
3e20: a7 20 3c 63 6f 64 65 3e 40 6d 61 63 72 6f 3c 2f . <code>@macro</
3e30: 63 6f 64 65 3e 20 e3 83 ac e3 82 a4 e3 83 a4 e3 code> ..........
3e40: 81 ab e9 96 a2 e6 95 b0 e3 81 aa e3 81 a9 e3 82 ................
3e50: 92 e7 99 bb e9 8c b2 e3 81 97 e3 81 a6 e3 81 8a ................
3e60: e3 81 8f e3 81 93 e3 81 a8 e3 81 a7 e3 80 81 0a ................
3e70: e6 a7 8b e6 96 87 e6 9c a8 e3 81 ae e7 94 9f e6 ................
3e80: 88 90 e3 82 92 e3 81 84 e3 81 98 e3 82 8b e3 81 ................
3e90: 93 e3 81 a8 e3 81 8c e5 8f af e8 83 bd e3 81 a7 ................
3ea0: e3 81 99 e3 80 82 e3 81 be e3 81 95 e3 81 ab e3 ................
3eb0: 83 9e e3 82 af e3 83 ad e3 80 82 0a 3c 2f 70 3e ............</p>
3ec0: 0a 0a 24 28 44 44 4f 43 5f 4d 45 4d 42 45 52 53 ..$(DDOC_MEMBERS
3ed0: 0a 24 28 53 45 43 54 49 4f 4e 20 e4 bd bf e3 81 .$(SECTION .....
3ee0: 84 e6 96 b9 2c 20 24 28 53 45 43 42 4f 44 59 0a ...., $(SECBODY.
3ef0: 3c 70 72 65 3e 0a 20 20 20 57 68 65 6e 20 66 75 <pre>. When fu
3f00: 6e 63 74 69 6f 6e 20 69 73 20 69 6e 76 6f 6b 65 nction is invoke
3f10: 64 2c 20 69 74 20 66 69 72 73 74 20 72 75 6e 20 d, it first run
3f20: 69 6e 20 74 68 65 20 40 6d 61 63 72 6f 20 6c 61 in the @macro la
3f30: 79 65 72 2c 20 61 6e 64 20 61 66 74 65 72 20 74 yer, and after t
3f40: 68 61 74 2c 0a 20 20 20 69 74 20 72 75 6e 20 69 hat,. it run i
3f50: 6e 20 74 68 65 20 6e 65 75 74 72 61 6c 20 6c 61 n the neutral la
3f60: 79 65 72 2e 20 48 65 72 65 20 69 73 20 61 6e 20 yer. Here is an
3f70: 65 78 61 6d 70 6c 65 2e 0a 0a 20 20 20 20 20 3e example... >
3f80: 3e 20 40 6d 61 63 72 6f 20 74 77 69 63 65 28 78 > @macro twice(x
3f90: 29 20 7b 20 78 3b 20 78 20 7d 0a 20 20 20 20 20 ) { x; x }.
3fa0: 3e 3e 20 64 65 66 20 66 28 29 20 7b 20 74 77 69 >> def f() { twi
3fb0: 63 65 28 70 72 69 6e 74 28 22 48 65 6c 6c 6f 22 ce(print("Hello"
3fc0: 29 29 3b 20 39 39 39 20 7d 0a 20 20 20 20 20 28 )); 999 }. (
3fd0: 66 75 6e 63 74 69 6f 6e 3a 31 37 33 62 36 61 30 function:173b6a0
3fe0: 3a 31 37 38 39 37 32 30 29 0a 20 20 20 20 20 3e :1789720). >
3ff0: 3e 20 66 28 29 0a 20 20 20 20 20 48 65 6c 6c 6f > f(). Hello
4000: 0a 20 20 20 20 20 48 65 6c 6c 6f 0a 20 20 20 20 . Hello.
4010: 20 39 39 39 0a 0a 20 20 20 57 68 65 6e 20 74 68 999.. When th
4020: 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 65 76 e interpreter ev
4030: 61 6c 75 61 74 65 73 20 66 28 29 2c 20 69 74 20 aluates f(), it
4040: 66 69 72 73 74 20 65 78 65 63 75 74 65 73 0a 20 first executes.
4050: 20 20 20 20 22 74 77 69 63 65 28 70 72 69 6e 74 "twice(print
4060: 28 22 48 65 6c 6c 6f 22 29 29 3b 20 39 39 39 22 ("Hello")); 999"
4070: 0a 20 20 20 69 6e 20 74 68 65 20 40 6d 61 63 72 . in the @macr
4080: 6f 20 6c 61 79 65 72 2e 20 42 61 73 69 63 61 6c o layer. Basical
4090: 6c 79 20 77 68 61 74 20 69 74 20 64 6f 65 73 20 ly what it does
40a0: 69 73 20 74 6f 20 6a 75 73 74 20 63 6f 6e 73 74 is to just const
40b0: 72 75 63 74 20 69 74 73 20 73 79 6e 74 61 78 20 ruct its syntax
40c0: 74 72 65 65 2e 0a 20 20 20 42 75 74 2c 20 73 69 tree.. But, si
40d0: 6e 63 65 20 77 65 20 68 61 76 65 20 64 65 66 69 nce we have defi
40e0: 6e 65 64 20 74 68 65 20 22 74 77 69 63 65 22 20 ned the "twice"
40f0: 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 function in the
4100: 40 6d 61 63 72 6f 20 6c 61 79 65 72 2c 20 69 74 @macro layer, it
4110: 20 69 73 0a 20 20 20 65 78 65 63 75 74 65 20 61 is. execute a
4120: 73 20 61 20 66 75 6e 63 74 69 6f 6e 2e 20 52 65 s a function. Re
4130: 73 75 6c 74 69 6e 67 20 73 79 6e 74 61 78 20 74 sulting syntax t
4140: 72 65 65 20 69 73 0a 20 20 20 20 20 22 70 72 69 ree is. "pri
4150: 6e 74 28 22 48 65 6c 6c 6f 22 29 3b 20 70 72 69 nt("Hello"); pri
4160: 6e 74 28 22 48 65 6c 6c 6f 22 29 3b 20 39 39 39 nt("Hello"); 999
4170: 22 0a 20 20 20 61 6e 64 20 74 68 69 73 20 69 73 ". and this is
4180: 20 65 78 65 63 75 74 65 64 20 6f 6e 20 74 68 65 executed on the
4190: 20 6e 65 75 74 72 61 6c 20 28 69 6e 20 74 68 69 neutral (in thi
41a0: 73 20 65 78 61 6d 70 6c 65 2c 20 40 76 61 6c 75 s example, @valu
41b0: 65 29 20 6c 61 79 65 72 2e 0a 20 20 20 54 68 69 e) layer.. Thi
41c0: 73 20 69 73 20 74 68 65 20 72 65 61 73 6f 6e 20 s is the reason
41d0: 77 68 79 20 79 6f 75 20 73 65 65 20 74 77 6f 20 why you see two
41e0: 22 48 65 6c 6c 6f 22 73 2e 0a 0a 20 20 20 20 20 "Hello"s...
41f0: 20 5b 5b 71 75 6f 74 65 20 61 6e 64 20 75 6e 71 [[quote and unq
4200: 75 6f 74 65 5d 5d 0a 0a 20 20 20 48 65 72 65 20 uote]].. Here
4210: 69 73 20 6d 6f 72 65 20 69 6e 76 6f 6c 76 65 64 is more involved
4220: 20 65 78 61 6d 70 6c 65 20 6f 66 20 63 6f 64 65 example of code
4230: 20 67 65 6e 72 61 74 69 6f 6e 2e 0a 20 20 20 46 genration.. F
4240: 72 6f 6d 20 22 78 22 2c 20 69 74 20 67 65 6e 65 rom "x", it gene
4250: 72 61 74 65 73 20 22 78 2a 78 2a 78 2a 78 2a 78 rates "x*x*x*x*x
4260: 2a 78 2a 78 2a 78 2a 78 2a 78 22 2e 0a 0a 20 20 *x*x*x*x*x"...
4270: 20 20 20 40 6d 61 63 72 6f 20 70 6f 77 31 30 28 @macro pow10(
4280: 78 29 20 7b 0a 20 20 20 20 20 20 20 40 76 61 6c x) {. @val
4290: 75 65 28 0a 20 20 20 20 20 20 20 20 20 64 65 66 ue(. def
42a0: 20 70 6f 77 28 78 2c 20 6e 29 20 7b 0a 20 20 20 pow(x, n) {.
42b0: 20 20 20 20 20 20 20 20 69 66 28 20 6e 20 3d 3d if( n ==
42c0: 20 31 20 29 20 7b 20 78 20 7d 0a 20 20 20 20 20 1 ) { x }.
42d0: 20 20 20 20 20 20 65 6c 73 65 20 7b 0a 20 20 20 else {.
42e0: 20 20 20 20 20 20 20 20 20 20 40 6d 61 63 72 6f @macro
42f0: 28 20 40 76 61 6c 75 65 28 78 29 20 2a 20 40 76 ( @value(x) * @v
4300: 61 6c 75 65 28 70 6f 77 28 78 2c 6e 2d 31 29 29 alue(pow(x,n-1))
4310: 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 7d 0a ). }.
4320: 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 }.
4330: 20 20 20 20 69 6e 0a 20 20 20 20 20 20 20 20 20 in.
4340: 20 20 70 6f 77 28 40 6d 61 63 72 6f 28 78 29 2c pow(@macro(x),
4350: 31 30 29 0a 20 20 20 20 20 20 20 29 0a 20 20 20 10). ).
4360: 20 20 7d 3b 0a 0a 20 20 20 48 65 72 65 2c 20 78 };.. Here, x
4370: 20 69 73 20 61 20 73 79 6e 74 61 78 20 74 72 65 is a syntax tre
4380: 65 20 62 75 74 20 6e 20 69 73 20 61 6e 20 61 63 e but n is an ac
4390: 74 75 61 6c 20 69 6e 74 65 67 65 72 2e 20 49 66 tual integer. If
43a0: 20 79 6f 75 20 72 65 61 64 20 63 61 72 65 66 75 you read carefu
43b0: 6c 6c 79 2c 0a 20 20 20 79 6f 75 20 73 68 6f 75 lly,. you shou
43c0: 6c 64 20 67 65 74 20 77 68 61 74 20 69 73 20 67 ld get what is g
43d0: 6f 69 6e 67 20 6f 6e 2e 20 42 61 73 69 63 61 6c oing on. Basical
43e0: 6c 79 2c 20 40 6d 61 63 72 6f 20 63 61 6e 20 62 ly, @macro can b
43f0: 65 20 63 6f 6e 73 69 64 65 72 65 64 20 6c 69 6b e considered lik
4400: 65 0a 20 20 20 71 75 61 73 69 71 75 6f 74 69 6e e. quasiquotin
4410: 67 20 61 6e 64 20 40 76 61 6c 75 65 20 74 6f 20 g and @value to
4420: 62 65 20 61 6e 20 65 73 63 61 70 65 20 66 72 6f be an escape fro
4430: 6d 20 69 74 2e 0a 3c 2f 70 72 65 3e 0a 29 29 0a m it..</pre>.)).
4440: 24 28 53 45 43 54 49 4f 4e 20 e5 be ae e5 a6 99 $(SECTION ......
4450: e3 81 aa e6 8c 99 e5 8b 95 2c 20 24 28 53 45 43 ........., $(SEC
4460: 42 4f 44 59 0a 3c 70 72 65 3e 0a 20 20 20 28 72 BODY.<pre>. (r
4470: 61 77 6d 61 63 72 6f 29 20 e3 83 ac e3 82 a4 e3 awmacro) .......
4480: 83 a4 e3 81 ae e8 a9 b1 0a 0a 20 20 20 20 20 20 ..........
4490: 5b 5b 6c 69 6d 69 74 61 74 69 6f 6e 73 5d 5d 0a [[limitations]].
44a0: 0a 20 20 20 54 68 69 73 20 40 6d 61 63 72 6f 20 . This @macro
44b0: 6c 61 79 65 72 20 69 73 20 61 20 76 65 72 79 20 layer is a very
44c0: 70 72 69 6d 69 74 69 76 65 20 6f 6e 65 2c 20 61 primitive one, a
44d0: 6e 64 20 6e 6f 74 20 61 20 70 65 72 66 65 63 74 nd not a perfect
44e0: 20 6d 61 63 72 6f 20 6c 61 6e 67 75 61 67 65 2e macro language.
44f0: 0a 20 20 20 54 77 6f 20 6d 61 6a 6f 72 20 6c 69 . Two major li
4500: 6d 69 74 61 74 69 6f 6e 73 20 61 72 65 20 73 65 mitations are se
4510: 65 6e 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 en in the follow
4520: 69 6e 67 20 22 69 74 22 20 65 78 61 6d 70 6c 65 ing "it" example
4530: 2e 0a 0a 20 20 20 20 20 3e 3e 20 40 6d 61 63 72 ... >> @macr
4540: 6f 20 4c 65 74 49 74 42 65 28 78 2c 20 79 29 20 o LetItBe(x, y)
4550: 7b 20 6c 65 74 20 69 74 20 3d 20 78 20 69 6e 20 { let it = x in
4560: 79 20 7d 3b 0a 0a 20 20 20 54 68 65 20 76 61 72 y };.. The var
4570: 69 61 62 6c 65 20 6e 61 6d 65 20 69 73 20 6e 6f iable name is no
4580: 74 20 68 79 67 65 6e 69 63 2c 20 61 6e 64 20 73 t hygenic, and s
4590: 6f 20 77 69 74 68 6f 75 74 20 61 6e 79 20 65 66 o without any ef
45a0: 66 6f 72 74 2c 20 74 68 65 20 73 79 6e 74 61 78 fort, the syntax
45b0: 20 74 72 65 65 20 22 79 22 0a 20 20 20 63 61 6e tree "y". can
45c0: 20 61 63 63 65 73 73 20 74 68 65 20 6f 75 74 65 access the oute
45d0: 72 20 76 61 72 69 61 62 6c 65 20 22 69 74 22 2e r variable "it".
45e0: 0a 0a 20 20 20 20 20 3e 3e 20 64 65 66 20 66 6f .. >> def fo
45f0: 6f 28 29 20 7b 20 4c 65 74 49 74 42 65 28 20 31 o() { LetItBe( 1
4600: 2b 32 2b 33 2c 20 69 74 2a 69 74 20 29 20 7d 0a +2+3, it*it ) }.
4610: 20 20 20 20 20 3e 3e 20 66 6f 6f 28 29 0a 20 20 >> foo().
4620: 20 20 20 33 36 0a 0a 20 20 20 4f 66 20 63 6f 75 36.. Of cou
4630: 72 73 65 2c 20 74 68 69 73 20 69 73 20 6e 6f 74 rse, this is not
4640: 20 6a 75 73 74 20 61 20 6c 69 6d 69 74 61 74 69 just a limitati
4650: 6f 6e 3b 20 69 74 20 63 61 6e 20 73 6f 6d 65 74 on; it can somet
4660: 69 6d 65 73 20 61 6c 6c 6f 77 20 75 73 20 74 6f imes allow us to
4670: 20 77 72 69 74 65 0a 20 20 20 6d 61 6e 79 20 69 write. many i
4680: 6e 74 65 72 65 73 74 69 6e 67 20 6d 61 63 72 6f nteresting macro
4690: 73 2e 0a 0a 20 20 20 54 68 65 20 6f 74 68 65 72 s... The other
46a0: 20 70 72 6f 62 6c 65 6d 20 69 73 20 74 68 61 74 problem is that
46b0: 20 74 68 65 20 6d 61 63 72 6f 20 65 78 70 61 6e the macro expan
46c0: 73 69 6f 6e 20 69 73 20 6f 6e 6c 79 20 64 6f 6e sion is only don
46d0: 65 20 61 74 20 66 75 6e 63 74 69 6f 6e 20 73 74 e at function st
46e0: 61 72 74 75 70 2e 0a 20 20 20 53 6f 20 0a 0a 20 artup.. So ..
46f0: 20 20 20 20 3e 3e 20 4c 65 74 49 74 42 65 28 20 >> LetItBe(
4700: 31 2b 32 2b 33 2c 20 69 74 2a 69 74 20 29 0a 20 1+2+3, it*it ).
4710: 20 20 20 20 2e 2e 2e 5c 76 61 6c 75 65 2e 64 28 ...\value.d(
4720: 31 37 33 29 3a 20 5b 3c 52 45 50 4c 3e 3a 32 34 173): [<REPL>:24
4730: 3a 31 5d 20 76 61 72 69 61 62 6c 65 20 4c 65 74 :1] variable Let
4740: 49 74 42 65 20 69 73 20 6e 6f 74 20 73 65 74 20 ItBe is not set
4750: 69 6e 20 6c 61 79 65 72 20 40 76 61 6c 75 65 0a in layer @value.
4760: 0a 20 20 20 79 6f 75 20 63 61 6e 6e 6f 74 20 64 . you cannot d
4770: 69 72 65 63 74 6c 79 20 75 73 65 20 74 68 65 20 irectly use the
4780: 6d 61 63 72 6f 20 69 6e 20 74 68 65 20 73 61 6d macro in the sam
4790: 65 20 73 63 6f 70 65 20 61 73 20 74 68 65 20 64 e scope as the d
47a0: 65 66 69 6e 69 74 69 6f 6e 2e 0a 20 20 20 59 6f efinition.. Yo
47b0: 75 20 6e 65 65 64 20 74 6f 20 77 72 61 70 20 69 u need to wrap i
47c0: 74 20 75 70 20 69 6e 20 61 20 66 75 6e 63 74 69 t up in a functi
47d0: 6f 6e 20 28 6c 69 6b 65 20 74 68 65 20 66 6f 6f on (like the foo
47e0: 28 29 20 69 6e 20 74 68 65 20 61 62 6f 76 65 20 () in the above
47f0: 65 78 61 6d 70 6c 65 29 2e 0a 3c 2f 70 72 65 3e example)..</pre>
4800: 0a 29 29 0a 29 0a 29 29 0a 0a 0a 24 28 53 45 43 .)).).))...$(SEC
4810: 54 49 4f 4e 20 42 75 69 6c 74 2d 69 6e 20 50 72 TION Built-in Pr
4820: 69 6d 69 74 69 76 65 73 2c 20 24 28 53 45 43 42 imitives, $(SECB
4830: 4f 44 59 0a 3c 70 3e 0a e7 b5 84 e3 81 bf e8 be ODY.<p>.........
4840: bc e3 81 bf e9 96 a2 e6 95 b0 e3 83 bb e5 a4 89 ................
4850: e6 95 b0 e3 81 ae e4 b8 80 e8 a6 a7 e3 80 82 0a ................
4860: 3c 2f 70 3e 0a 24 28 44 44 4f 43 5f 4d 45 4d 42 </p>.$(DDOC_MEMB
4870: 45 52 53 0a 0a 24 28 53 45 43 54 49 4f 4e 20 e3 ERS..$(SECTION .
4880: 83 86 e3 83 bc e3 83 96 e3 83 ab e6 93 8d e4 bd ................
4890: 9c 2c 20 24 28 53 45 43 42 4f 44 59 0a 20 20 24 ., $(SECBODY. $
48a0: 28 54 41 42 4c 45 0a 20 20 20 20 24 28 54 52 20 (TABLE. $(TR
48b0: 24 28 54 48 20 7b 7d 29 20 24 28 54 44 20 28 29 $(TH {}) $(TD ()
48c0: 29 20 24 28 54 44 20 e7 a9 ba e3 81 ae e3 83 86 ) $(TD .........
48d0: e3 83 bc e3 83 96 e3 83 ab e3 82 92 e4 bd 9c e3 ................
48e0: 82 8b 29 29 0a 20 20 20 20 24 28 54 52 20 24 28 ..)). $(TR $(
48f0: 54 48 20 2e 29 20 24 28 54 44 20 28 74 2c 20 73 TH .) $(TD (t, s
4900: 29 29 20 24 28 54 44 20 e3 83 86 e3 83 bc e3 83 )) $(TD ........
4910: 96 e3 83 ab 20 74 20 e3 81 ae e5 90 8d e5 89 8d .... t .........
4920: 20 73 20 e3 81 ae e3 83 95 e3 82 a3 e3 83 bc e3 s .............
4930: 83 ab e3 83 89 e3 81 ae e5 80 a4 e3 82 92 e5 8f ................
4940: 96 e5 be 97 e3 80 82 e3 81 aa e3 81 91 e3 82 8c ................
4950: e3 81 b0 20 3c 74 74 3e 75 6e 64 65 66 69 6e 65 ... <tt>undefine
4960: 64 3c 2f 74 74 3e 29 29 0a 20 20 20 20 24 28 54 d</tt>)). $(T
4970: 52 20 24 28 54 48 20 2e 3f 29 20 24 28 54 44 20 R $(TH .?) $(TD
4980: 28 74 2c 20 73 29 29 20 24 28 54 44 20 e3 83 86 (t, s)) $(TD ...
4990: e3 83 bc e3 83 96 e3 83 ab 20 74 20 e3 81 ab e5 ......... t ....
49a0: 90 8d e5 89 8d 20 73 20 e3 81 ae e3 83 95 e3 82 ..... s ........
49b0: a3 e3 83 bc e3 83 ab e3 83 89 e3 81 8c e3 81 82 ................
49c0: e3 82 8c e3 81 b0 20 31 e3 80 81 e3 81 aa e3 81 ...... 1........
49d0: 91 e3 82 8c e3 81 b0 20 30 29 29 0a 20 20 20 20 ....... 0)).
49e0: 24 28 54 52 20 24 28 54 48 20 2e 3d 29 20 24 28 $(TR $(TH .=) $(
49f0: 54 44 20 28 74 2c 20 73 2c 20 76 29 29 20 24 28 TD (t, s, v)) $(
4a00: 54 44 20 e3 83 86 e3 83 bc e3 83 96 e3 83 ab 20 TD ............
4a10: 74 20 e3 82 92 e8 a6 aa e3 81 ab e6 8c 81 e3 81 t ..............
4a20: a1 e3 80 81 e5 90 8d e5 89 8d 20 73 20 e3 81 ae .......... s ...
4a30: e3 83 95 e3 82 a3 e3 83 bc e3 83 ab e3 83 89 e3 ................
4a40: 81 ab 20 76 20 e3 81 8c e5 85 a5 e3 81 a3 e3 81 .. v ...........
4a50: 9f e3 83 86 e3 83 bc e3 83 96 e3 83 ab e3 82 92 ................
4a60: e4 bd 9c e3 82 8b 29 29 0a 20 20 29 0a 29 29 0a ......)). ).)).
4a70: 3c 62 72 20 2f 3e 0a 0a 24 28 53 45 43 54 49 4f <br />..$(SECTIO
4a80: 4e 20 e5 88 b6 e5 be a1 e3 83 95 e3 83 ad e3 83 N ..............
4a90: bc 2c 20 24 28 53 45 43 42 4f 44 59 0a 20 20 24 ., $(SECBODY. $
4aa0: 28 54 41 42 4c 45 0a 20 20 20 20 24 28 54 52 20 (TABLE. $(TR
4ab0: 24 28 54 48 20 69 66 29 20 24 28 54 44 20 28 6e $(TH if) $(TD (n
4ac0: 2c 20 66 74 2c 20 66 65 29 29 20 24 28 54 44 20 , ft, fe)) $(TD
4ad0: 6e 20 e3 81 8c e9 9d 9e 20 30 20 e3 81 aa e3 82 n ...... 0 .....
4ae0: 89 20 3c 74 74 3e 66 74 28 29 3c 2f 74 3e e3 80 . <tt>ft()</t>..
4af0: 81 30 20 e3 81 aa e3 82 89 20 3c 74 74 3e 66 65 .0 ...... <tt>fe
4b00: 28 29 3c 2f 74 74 3e 20 e3 82 92 e5 ae 9f e8 a1 ()</tt> ........
4b10: 8c 29 29 0a 20 20 29 0a 29 29 0a 3c 62 72 20 2f .)). ).)).<br /
4b20: 3e 0a 0a 24 28 53 45 43 54 49 4f 4e 20 e6 bc 94 >..$(SECTION ...
4b30: e7 ae 97 2c 20 24 28 53 45 43 42 4f 44 59 0a 20 ..., $(SECBODY.
4b40: 20 24 28 54 41 42 4c 45 0a 20 20 20 20 24 28 54 $(TABLE. $(T
4b50: 52 20 24 28 54 48 20 2b 29 20 24 28 54 44 20 28 R $(TH +) $(TD (
4b60: 6e 2c 20 6d 29 29 20 24 28 54 44 20 e6 95 b4 e6 n, m)) $(TD ....
4b70: 95 b0 20 6e 20 e3 81 a8 e6 95 b4 e6 95 b0 20 6d .. n ......... m
4b80: 20 e3 82 92 e8 b6 b3 e3 81 97 e3 81 a6 e8 bf 94 ...............
4b90: e3 81 99 29 29 0a 20 20 20 20 24 28 54 52 20 24 ...)). $(TR $
4ba0: 28 54 48 20 2d 29 20 24 28 54 44 20 28 6e 2c 20 (TH -) $(TD (n,
4bb0: 6d 29 29 20 24 28 54 44 20 e6 95 b4 e6 95 b0 e3 m)) $(TD .......
4bc0: 81 ae e5 bc 95 e3 81 8d e7 ae 97 29 29 0a 20 20 ...........)).
4bd0: 20 20 24 28 54 52 20 24 28 54 48 20 2a 29 20 24 $(TR $(TH *) $
4be0: 28 54 44 20 28 6e 2c 20 6d 29 29 20 24 28 54 44 (TD (n, m)) $(TD
4bf0: 20 e6 95 b4 e6 95 b0 e3 81 ae e6 8e 9b e3 81 91 ...............
4c00: e7 ae 97 29 29 0a 20 20 20 20 24 28 54 52 20 24 ...)). $(TR $
4c10: 28 54 48 20 2f 29 20 24 28 54 44 20 28 6e 2c 20 (TH /) $(TD (n,
4c20: 6d 29 29 20 24 28 54 44 20 e6 95 b4 e6 95 b0 e3 m)) $(TD .......
4c30: 81 ae e5 89 b2 e3 82 8a e7 ae 97 29 29 0a 20 20 ...........)).
4c40: 20 20 24 28 54 52 20 24 28 54 48 20 25 29 20 24 $(TR $(TH %) $
4c50: 28 54 44 20 28 6e 2c 20 6d 29 29 20 24 28 54 44 (TD (n, m)) $(TD
4c60: 20 e6 95 b4 e6 95 b0 e3 81 ae e5 89 b0 e4 bd 99 ...............
4c70: 29 29 0a 20 20 20 20 24 28 54 52 20 24 28 54 48 )). $(TR $(TH
4c80: 20 26 61 6d 70 3b 26 61 6d 70 3b 29 20 24 28 54 &&) $(T
4c90: 44 20 28 6e 2c 20 6d 29 29 20 24 28 54 44 20 e6 D (n, m)) $(TD .
4ca0: 95 b4 e6 95 b0 20 6e 20 e3 81 a8 20 6d 20 e3 81 ..... n ... m ..
4cb0: 8c e4 b8 a1 e6 96 b9 e9 9d 9e 20 30 20 e3 81 aa .......... 0 ...
4cc0: e3 82 89 20 31 e3 80 81 e3 81 9d e3 82 8c e4 bb ... 1...........
4cd0: a5 e5 a4 96 e3 81 a7 e3 81 af 20 30 29 29 0a 20 .......... 0)).
4ce0: 20 20 20 24 28 54 52 20 24 28 54 48 20 7c 7c 29 $(TR $(TH ||)
4cf0: 20 24 28 54 44 20 28 6e 2c 20 6d 29 29 20 24 28 $(TD (n, m)) $(
4d00: 54 44 20 e6 95 b4 e6 95 b0 20 6e 20 e3 81 a8 20 TD ...... n ...
4d10: 6d 20 e3 81 8c e3 81 a9 e3 81 a1 e3 82 89 e3 81 m ..............
4d20: 8b e9 9d 9e 20 30 20 e3 81 aa e3 82 89 20 31 e3 .... 0 ...... 1.
4d30: 80 81 e3 81 9d e3 82 8c e4 bb a5 e5 a4 96 e3 81 ................
4d40: a7 e3 81 af 20 30 29 29 0a 20 20 20 20 24 28 54 .... 0)). $(T
4d50: 52 20 24 28 54 48 20 7e 29 20 24 28 54 44 20 28 R $(TH ~) $(TD (
4d60: 61 2c 20 62 29 29 20 24 28 54 44 20 61 20 e3 81 a, b)) $(TD a ..
4d70: a8 20 62 20 e3 82 92 e6 96 87 e5 ad 97 e5 88 97 . b ............
4d80: e5 8c 96 e3 81 97 e3 81 a6 e7 b5 90 e5 90 88 29 ...............)
4d90: 29 0a 20 20 20 20 24 28 54 52 20 24 28 54 48 20 ). $(TR $(TH
4da0: 26 6c 74 3b 29 20 24 28 54 44 20 28 61 2c 20 62 <) $(TD (a, b
4db0: 29 29 20 24 28 54 44 20 61 20 e3 81 a8 20 62 20 )) $(TD a ... b
4dc0: e3 82 92 e6 af 94 e8 bc 83 29 29 0a 20 20 20 20 .........)).
4dd0: 24 28 54 52 20 24 28 54 48 20 26 6c 74 3b 3d 29 $(TR $(TH <=)
4de0: 20 24 28 54 44 20 28 61 2c 20 62 29 29 20 24 28 $(TD (a, b)) $(
4df0: 54 44 20 61 20 e3 81 a8 20 62 20 e3 82 92 e6 af TD a ... b .....
4e00: 94 e8 bc 83 29 29 0a 20 20 20 20 24 28 54 52 20 ....)). $(TR
4e10: 24 28 54 48 20 26 67 74 3b 29 20 24 28 54 44 20 $(TH >) $(TD
4e20: 28 61 2c 20 62 29 29 20 24 28 54 44 20 61 20 e3 (a, b)) $(TD a .
4e30: 81 a8 20 62 20 e3 82 92 e6 af 94 e8 bc 83 29 29 .. b .........))
4e40: 0a 20 20 20 20 24 28 54 52 20 24 28 54 48 20 26 . $(TR $(TH &
4e50: 67 74 3b 3d 29 20 24 28 54 44 20 28 61 2c 20 62 gt;=) $(TD (a, b
4e60: 29 29 20 24 28 54 44 20 61 20 e3 81 a8 20 62 20 )) $(TD a ... b
4e70: e3 82 92 e6 af 94 e8 bc 83 29 29 0a 20 20 20 20 .........)).
4e80: 24 28 54 52 20 24 28 54 48 20 3d 3d 29 20 24 28 $(TR $(TH ==) $(
4e90: 54 44 20 28 61 2c 20 62 29 29 20 24 28 54 44 20 TD (a, b)) $(TD
4ea0: 61 20 e3 81 a8 20 62 20 e3 82 92 e6 af 94 e8 bc a ... b ........
4eb0: 83 29 29 0a 20 20 20 20 24 28 54 52 20 24 28 54 .)). $(TR $(T
4ec0: 48 20 21 3d 29 20 24 28 54 44 20 28 61 2c 20 62 H !=) $(TD (a, b
4ed0: 29 29 20 24 28 54 44 20 61 20 e3 81 a8 20 62 20 )) $(TD a ... b
4ee0: e3 82 92 e6 af 94 e8 bc 83 29 29 0a 20 20 29 0a .........)). ).
4ef0: 3c 70 3e 0a e6 b3 a8 e6 84 8f e7 82 b9 e3 81 a8 <p>.............
4f00: e3 81 97 e3 81 a6 e3 80 81 e4 bd 9c e8 80 85 e3 ................
4f10: 81 ae e8 b6 a3 e5 91 b3 e3 81 ae e5 95 8f e9 a1 ................
4f20: 8c e3 81 a7 e3 80 81 3c 74 74 3e 26 61 6d 70 3b .......<tt>&
4f30: 26 61 6d 70 3b 3c 2f 74 74 3e 20 e3 81 a8 20 3c &</tt> ... <
4f40: 74 74 3e 7c 7c 3c 2f 74 74 3e 20 e3 81 af 20 73 tt>||</tt> ... s
4f50: 68 6f 72 74 2d 63 69 72 63 75 69 74 20 e8 a9 95 hort-circuit ...
4f60: e4 be a1 e3 82 92 e3 81 97 e3 81 be e3 81 9b e3 ................
4f70: 82 93 e3 80 82 0a e6 95 b4 e6 95 b0 e6 bc 94 e7 ................
4f80: ae 97 e3 81 ae e7 a8 ae e9 a1 9e e3 81 8c e5 b0 ................
4f90: 91 e3 81 aa e3 81 84 e3 81 ae e3 81 af e3 80 81 ................
4fa0: 44 20 e8 a8 80 e8 aa 9e e3 81 ae 20 73 74 64 2e D ......... std.
4fb0: 62 69 67 69 6e 74 20 e3 81 8c e3 83 93 e3 83 83 bigint .........
4fc0: e3 83 88 e6 bc 94 e7 ae 97 e3 81 aa e3 81 a9 e3 ................
4fd0: 82 92 e3 82 b5 e3 83 9d e3 83 bc e3 83 88 e3 81 ................
4fe0: 97 e3 81 a6 e3 81 aa e3 81 84 e3 81 9f e3 82 81 ................
4ff0: e3 81 a7 e3 81 99 e3 80 82 0a e6 96 87 e5 ad 97 ................
5000: e5 88 97 e3 81 8c e7 b5 90 e5 90 88 e3 81 97 e3 ................
5010: 81 8b e3 81 a7 e3 81 8d e3 81 aa e3 81 84 e3 81 ................
5020: ae e3 81 af e3 80 81 e5 8d 98 e3 81 ab e6 89 8b ................
5030: e6 8a 9c e3 81 8d e3 81 a7 e3 81 99 e3 80 82 0a ................
5040: 3c 2f 70 3e 0a 29 29 0a 0a 24 28 53 45 43 54 49 </p>.))..$(SECTI
5050: 4f 4e 20 e5 a4 96 e9 83 a8 e3 81 a8 e3 81 ae e3 ON .............
5060: 82 84 e3 82 8a e3 81 a8 e3 82 8a 2c 20 24 28 53 ..........., $(S
5070: 45 43 42 4f 44 59 0a 20 20 24 28 54 41 42 4c 45 ECBODY. $(TABLE
5080: 0a 20 20 20 20 24 28 54 52 20 24 28 54 48 20 70 . $(TR $(TH p
5090: 72 69 6e 74 29 20 24 28 54 44 20 28 61 29 29 20 rint) $(TD (a))
50a0: 24 28 54 44 20 61 20 e3 82 92 e6 96 87 e5 ad 97 $(TD a .........
50b0: e5 88 97 e5 8c 96 e6 a8 99 e6 ba 96 e5 87 ba e5 ................
50c0: 8a 9b e3 81 ab e6 94 b9 e8 a1 8c e4 bb 98 e3 81 ................
50d0: 8d e3 81 a7 e8 a1 a8 e7 a4 ba 29 29 0a 20 20 20 ..........)).
50e0: 20 24 28 54 52 20 24 28 54 48 20 61 72 67 76 29 $(TR $(TH argv)
50f0: 20 24 28 54 44 20 29 20 24 28 54 44 20 e3 82 b9 $(TD ) $(TD ...
5100: e3 82 af e3 83 aa e3 83 97 e3 83 88 e3 81 ab e6 ................
5110: b8 a1 e3 81 95 e3 82 8c e3 81 9f e5 bc 95 e6 95 ................
5120: b0 e6 96 87 e5 ad 97 e5 88 97 e3 81 ae 63 6f 6e .............con
5130: 73 e3 83 aa e3 82 b9 e3 83 88 29 29 0a 20 20 29 s.........)). )
5140: 0a 29 29 0a 3c 62 72 20 2f 3e 0a 0a 24 28 53 45 .)).<br />..$(SE
5150: 43 54 49 4f 4e 20 e3 83 87 e3 83 bc e3 82 bf e5 CTION ..........
5160: 9e 8b e5 88 a4 e5 ae 9a 2c 20 24 28 53 45 43 42 ........, $(SECB
5170: 4f 44 59 0a 20 20 24 28 54 41 42 4c 45 0a 20 20 ODY. $(TABLE.
5180: 20 20 24 28 54 52 20 24 28 54 48 20 5f 69 73 69 $(TR $(TH _isi
5190: 6e 74 29 20 24 28 54 44 20 28 61 29 29 20 24 28 nt) $(TD (a)) $(
51a0: 54 44 20 61 20 e3 81 8c e6 95 b4 e6 95 b0 e3 81 TD a ...........
51b0: aa e3 82 89 20 31 e3 80 81 e3 81 a7 e3 81 aa e3 .... 1..........
51c0: 81 91 e3 82 8c e3 81 b0 20 30 29 29 0a 20 20 20 ........ 0)).
51d0: 20 24 28 54 52 20 24 28 54 48 20 5f 69 73 73 74 $(TR $(TH _isst
51e0: 72 29 20 24 28 54 44 20 28 61 29 29 20 24 28 54 r) $(TD (a)) $(T
51f0: 44 20 61 20 e3 81 8c e6 96 87 e5 ad 97 e5 88 97 D a ............
5200: e3 81 aa e3 82 89 20 31 e3 80 81 e3 81 a7 e3 81 ...... 1........
5210: aa e3 81 91 e3 82 8c e3 81 b0 20 30 29 29 0a 20 .......... 0)).
5220: 20 20 20 24 28 54 52 20 24 28 54 48 20 5f 69 73 $(TR $(TH _is
5230: 66 75 6e 29 20 24 28 54 44 20 28 61 29 29 20 24 fun) $(TD (a)) $
5240: 28 54 44 20 61 20 e3 81 8c e9 96 a2 e6 95 b0 e3 (TD a ..........
5250: 81 aa e3 82 89 20 31 e3 80 81 e3 81 a7 e3 81 aa ..... 1.........
5260: e3 81 91 e3 82 8c e3 81 b0 20 30 29 29 0a 20 20 ......... 0)).
5270: 20 20 24 28 54 52 20 24 28 54 48 20 5f 69 73 74 $(TR $(TH _ist
5280: 61 62 6c 65 29 20 24 28 54 44 20 28 61 29 29 20 able) $(TD (a))
5290: 24 28 54 44 20 61 20 e3 81 8c e3 83 86 e3 83 bc $(TD a .........
52a0: e3 83 96 e3 83 ab e3 81 aa e3 82 89 20 31 e3 80 ............ 1..
52b0: 81 e3 81 a7 e3 81 aa e3 81 91 e3 82 8c e3 81 b0 ................
52c0: 20 30 29 29 0a 20 20 20 20 24 28 54 52 20 24 28 0)). $(TR $(
52d0: 54 48 20 5f 69 73 75 6e 64 65 66 69 6e 65 64 29 TH _isundefined)
52e0: 20 24 28 54 44 20 28 61 29 29 20 24 28 54 44 20 $(TD (a)) $(TD
52f0: 61 20 e3 81 8c e6 9c aa e5 ae 9a e7 be a9 e5 80 a ..............
5300: a4 e3 81 aa e3 82 89 20 31 e3 80 81 e3 81 a7 e3 ....... 1.......
5310: 81 aa e3 81 91 e3 82 8c e3 81 b0 20 30 29 29 0a ........... 0)).
5320: 20 20 29 0a 29 29 0a 29 0a 29 29 0a 0a 29 0a 4d ).)).).))..).M
5330: 61 63 72 6f 73 3a 0a 20 20 20 20 54 49 54 4c 45 acros:. TITLE
5340: 3d 50 6f 6c 65 6d 79 20 52 65 66 65 72 65 6e 63 =Polemy Referenc
5350: 65 20 4d 61 6e 75 61 6c 0a 20 20 20 20 44 4f 43 e Manual. DOC
5360: 46 49 4c 45 4e 41 4d 45 3d 69 6e 64 65 78 2e 68 FILENAME=index.h
5370: 74 6d 6c 0a 20 20 20 20 53 45 43 54 49 4f 4e 3d tml. SECTION=
5380: 24 28 44 44 4f 43 5f 44 45 43 4c 20 24 28 44 44 $(DDOC_DECL $(DD
5390: 4f 43 5f 50 53 59 4d 42 4f 4c 20 24 31 29 29 20 OC_PSYMBOL $1))
53a0: 24 28 44 44 4f 43 5f 44 45 43 4c 5f 44 44 20 24 $(DDOC_DECL_DD $
53b0: 32 29 0a 20 20 20 20 53 45 43 42 4f 44 59 3d 24 2). SECBODY=$
53c0: 30 0a 0.