|
|
1.1 ! root 1: .\" Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. ! 2: .so bfont.def ! 3: .pl 0 ! 4: .ll 18c ! 5: .nh ! 6: .wh -.3c fo ! 7: .de fo \"page footer ! 8: 'bp ! 9: .pl 35c ! 10: .po 0 ! 11: .lt 21c ! 12: .tl '.''.' ! 13: .po 1.5c ! 14: .sp 2 ! 15: .ns ! 16: .. ! 17: .ds B \fIB\fP ! 18: .ds BB \fI\zB\h'3u'B\fP ! 19: .de HE \"Heading ! 20: .sp 0.9v ! 21: .ne 1.7v ! 22: \fB\\$1\fP \\$2 ! 23: .sp .4v ! 24: .ns ! 25: .. ! 26: .de IT ! 27: .sp .4v ! 28: .JT ! 29: .. ! 30: .de JT ! 31: .ti 0 ! 32: .. ! 33: .de TA ! 34: .br ! 35: .sp -1 ! 36: .ti 0 ! 37: ! 38: .. ! 39: .fo ! 40: .rs ! 41: .sp 2 ! 42: .ta 20n ! 43: .ps 16 ! 44: \*(BB\fB\ \|QUICK REFERENCE\fP ! 45: .ps 10 ! 46: .sp 0.5 ! 47: .ta 30n ! 48: .HE "GETTING STARTED" ! 49: .IT ! 50: \*(<:b\*(:> ! 51: .TA ! 52: Enter \*B system ! 53: .JT ! 54: \*(<:b -e\*(:> ! 55: .TA ! 56: Enter \*B system, using editor \fI$EDITOR\fP (default \fIvi\fP) ! 57: .JT ! 58: \*(<:b \*(:>\|\fIfile\fP .\^.\^. ! 59: .TA ! 60: Execute \*B commands in named files, and \*(<:QUIT\*(:> ! 61: .JT ! 62: \*(<:b -p\*(:> ! 63: .TA ! 64: Print all units in workspace on printer; do not enter \*B system ! 65: .JT ! 66: \*(<:b -l\*(:> ! 67: .TA ! 68: Print (list) all units on screen; do not enter \*B system ! 69: .JT ! 70: \*(<:b -i \*(:>\fItable\fP ! 71: .TA ! 72: Create a table of texts from the standard input ! 73: .JT ! 74: \*(<:b -o \*(:>\fItable\fP ! 75: .TA ! 76: Write a table of texts to the standard output ! 77: .HE "WHAT IS IN THE WORKSPACE ?" " (only as immediate commands)" ! 78: .IT ! 79: \*(<:==\*(:> ! 80: .TA ! 81: Display tags of current permanent targets ! 82: .JT ! 83: \*(<:::\*(:> ! 84: .TA ! 85: Display headings of current units ! 86: .HE "HOW TO MAKE CHANGES" ! 87: .IT ! 88: \*(<::\*(:>\fIunit-name\fP\0 ! 89: .TA ! 90: Make changes to unit (default: unit last referred to) ! 91: .JT ! 92: \*(<:=\*(:>\fItarget-name\fP ! 93: .TA ! 94: Make changes to contents of target (last so changed) ! 95: .HE "Focus moves" ! 96: .ta 15n +20n ! 97: .de KK \"Key(s) that preceeding name of editing operation is bound to ! 98: .br ! 99: .sp -1 ! 100: .ti 0 ! 101: ! 102: .. ! 103: .de KY \"Key in box ! 104: 'ps -2 ! 105: 'nh ! 106: \v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\|\s-1\\$1\s+1\|\v'-\\n(.su/2u'\(br\v'\\n(.su/2u'\\h'-\\w'|'u/2u'\l'|0+(\\w'|'u/2u)\(rn'\\h'-\\w'|'u/2u'\l'|0\(ul' ! 107: 'hy ! 108: 'ps +2 ! 109: .. ! 110: .de OR ! 111: \&\ or\ ! 112: .. ! 113: .de DD \"Description of editing operation ! 114: .br ! 115: .sp -1 ! 116: .ti 0 ! 117: ! 118: .. ! 119: .IT ! 120: WIDEN ! 121: .KK ! 122: .KY f1 ! 123: .OR ! 124: .KY ESC ! 125: .KY w ! 126: .DD ! 127: Widen focus ! 128: .JT ! 129: FIRST ! 130: .KK ! 131: .KY f2 ! 132: .OR ! 133: .KY ESC ! 134: .KY f ! 135: .DD ! 136: Move focus to first contained item ! 137: .JT ! 138: LAST ! 139: .KK ! 140: .KY f3 ! 141: .OR ! 142: .KY ESC ! 143: .KY l ! 144: .DD ! 145: Move focus to last contained item ! 146: .JT ! 147: EXTEND ! 148: .KK ! 149: .KY f4 ! 150: .OR ! 151: .KY ESC ! 152: .KY e ! 153: .DD ! 154: Extend focus (usually to the right) ! 155: .JT ! 156: UPLINE ! 157: .KK ! 158: .KY f5 ! 159: .OR ! 160: .KY ESC ! 161: .KY u ! 162: .DD ! 163: Move focus to whole of line above ! 164: .JT ! 165: PREVIOUS ! 166: .KK ! 167: .KY f6 ! 168: .OR ! 169: .KY ESC ! 170: .KY p ! 171: .DD ! 172: Move focus to previous item ! 173: .JT ! 174: NEXT ! 175: .KK ! 176: .KY f7 ! 177: .OR ! 178: .KY ESC ! 179: .KY n ! 180: .DD ! 181: Move focus to next item ! 182: .JT ! 183: DOWNLINE ! 184: .KK ! 185: .KY f8 ! 186: .OR ! 187: .KY ESC ! 188: .KY d ! 189: .DD ! 190: Move focus to whole of line below ! 191: .JT ! 192: UP ! 193: .KK ! 194: .KY \(ua ! 195: .DD ! 196: Make new hole, move focus up ! 197: .JT ! 198: DOWN ! 199: .KK ! 200: .KY \(da ! 201: .DD ! 202: Make new hole, move focus down ! 203: .JT ! 204: LEFT ! 205: .KK ! 206: .KY \(<- ! 207: .DD ! 208: Make new hole, move focus left ! 209: .JT ! 210: RIGHT ! 211: .KK ! 212: .KY \(-> ! 213: .DD ! 214: Make new hole, move focus right ! 215: .HE "Typing and making changes" ! 216: .IT ! 217: \fIAny character\fP ! 218: .DD ! 219: Insert character before focus ! 220: .JT ! 221: ACCEPT ! 222: .KK ! 223: .KY TAB ! 224: .DD ! 225: Accept suggestion, focus to next hole or end of line ! 226: .JT ! 227: RETURN ! 228: .KK ! 229: .KY RETURN ! 230: .DD ! 231: Go to new line, or decrease indentation ! 232: .JT ! 233: UNDO ! 234: .KK ! 235: .KY BACKSPACE ! 236: .DD ! 237: Undo effect of last key pressed (may be repeated) ! 238: .JT ! 239: REDO ! 240: .KK ! 241: .KY ctrl-U ! 242: .DD ! 243: Redo last UNDOne key (may be repeated) ! 244: .JT ! 245: DELETE ! 246: .KK ! 247: .KY ctrl-D ! 248: .DD ! 249: Delete contents of focus (to buffer) ! 250: .JT ! 251: COPY ! 252: .KK ! 253: .KY ctrl-C ! 254: .DD ! 255: Copy contents of focus to buffer, or buffer to hole ! 256: .HE "Other commands" ! 257: .IT ! 258: RECORD ! 259: .KK ! 260: .KY ctrl-R ! 261: .DD ! 262: Start/stop recording keystrokes ! 263: .JT ! 264: PLAY ! 265: .KK ! 266: .KY ctrl-P ! 267: .DD ! 268: Play back recorded keystrokes ! 269: .JT ! 270: LOOK ! 271: .KK ! 272: .KY ctrl-L ! 273: .DD ! 274: Redisplay screen ! 275: .JT ! 276: HELP ! 277: .KK ! 278: .KY ESC ! 279: .KY ? ! 280: .DD ! 281: Display summary of keys ! 282: .JT ! 283: EXIT ! 284: .KK ! 285: .KY ctrl-X ! 286: .DD ! 287: Finish changes or execute command ! 288: .JT ! 289: \fIInterrupt\fP ! 290: .KK ! 291: .KY BREAK ! 292: .OR ! 293: .KY DEL ! 294: .DD ! 295: Leave incomplete unit or interrupt command execution ! 296: .bp ! 297: .rs ! 298: .sp 2c ! 299: .ta 35n +5n ! 300: .HE "COMMANDS" " (\fItlt\fP is text, list or table)" ! 301: .IT ! 302: \*(<:WRITE\*(:> \fIexpr\fP\0 ! 303: .TA ! 304: Write to terminal; \*(<:/\*(:> before or after \fIexpr\fP gives new line ! 305: .JT ! 306: \*(<:READ\*(:> \fItarget\fP \*(<:EG\*(:> \fIexpr\fP\0 ! 307: .TA ! 308: Read expression from terminal to \fItarget\fP; \fIexpr\fP is example ! 309: .JT ! 310: \*(<:READ\*(:> \fItarget\fP \*(<:RAW\*(:>\0 ! 311: .TA ! 312: Read line of text ! 313: .JT ! 314: \*(<:PUT\*(:> \fIexpr\fP \*(<:IN\*(:> \fItarget\fP ! 315: .TA ! 316: Put value of \fIexpr\fP in \fItarget\fP ! 317: .JT ! 318: \*(<:DRAW\*(:> \fItarget\fP\0 ! 319: .TA ! 320: Random number from \*(<:~0\*(:> up to, but not including, \*(<:~1\*(:> ! 321: .JT ! 322: \*(<:CHOOSE\*(:> \fItarget\fP \*(<:FROM\*(:> \fItlt\fP\0 ! 323: .TA ! 324: Random element of \fItlt\fP ! 325: .JT ! 326: \*(<:SET'RANDOM\*(:> \fIexpr\fP\0 ! 327: .TA ! 328: Start random sequence for \*(<:DRAW\*(:> and \*(<:CHOOSE\*(:> ! 329: .JT ! 330: \*(<:REMOVE\*(:> \fIexpr\fP \*(<:FROM\*(:> \fIlist\fP\0 ! 331: .TA ! 332: Remove one element from \fIlist\fP ! 333: .JT ! 334: \*(<:INSERT\*(:> \fIexpr\fP \*(<:IN\*(:> \fIlist\fP\0 ! 335: .TA ! 336: Insert in right place ! 337: .JT ! 338: \*(<:DELETE\*(:> \fItarget\fP\0 ! 339: .TA ! 340: Delete permanent target or table entry ! 341: .JT ! 342: \fIKEYWORD param KEYWORD\fP .\^.\^. ! 343: .TA ! 344: Execute user-defined command ! 345: .JT ! 346: \fIKEYWORD\fP ! 347: .TA ! 348: Execute refined command ! 349: .JT ! 350: \*(<:CHECK\*(:> \fItest\fP\0 ! 351: .TA ! 352: Check \fItest\fP and stop if it fails ! 353: .JT ! 354: \*(<:IF\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP ! 355: .TA ! 356: If \fItest\fP succeeds, execute \fIcommands\fP; no \*(<:ELSE\*(:> allowed ! 357: .JT ! 358: \*(<:SELECT:\*(:> ! 359: .TA ! 360: Select one alternative: ! 361: .JT ! 362: \*(<: \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP ! 363: .TA ! 364: \& try each \fItest\fP in order ! 365: .JT ! 366: \*(<: \*(:>.\^.\^. ! 367: .TA ! 368: \& (one must succeed; ! 369: .JT ! 370: \*(<: \*(:>\fItest\fP\*(<::\*(:> \fIcommands\fP\0 ! 371: .TA ! 372: \& the last \fItest\fP may be \*(<:ELSE\*(:>) ! 373: .JT ! 374: \*(<:WHILE\*(:> \fItest\fP\*(<::\*(:> \fIcommands\fP ! 375: .TA ! 376: Execute \fIcommands\fP, as long as \fItest\fP succeeds ! 377: .JT ! 378: \*(<:FOR\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP\*(<::\*(:> \fIcommands\fP\0 ! 379: .TA ! 380: Take each element of \fItlt\fP in turn ! 381: .HE "UNITS" ! 382: .IT ! 383: \*(<:HOW'TO\*(:> \fIKEYWORD\fP\ .\^.\^.\*(<::\*(:> \fIcommands\fP\0 ! 384: .TA ! 385: Define new command \fIKEYWORD\fP\ .\^.\^. ! 386: .JT ! 387: \*(<:YIELD\*(:> \fIf\fP\*(<::\*(:> \fIcommands\fP\0 ! 388: .TA ! 389: Define new function \fIf\fP with no arguments ! 390: .JT ! 391: \*(<:YIELD\*(:> \fIf x\fP\*(<::\*(:> \fIcommands\fP\0 ! 392: .TA ! 393: Define new function \fIf\fP with one argument \fIx\fP ! 394: .JT ! 395: \*(<:YIELD\*(:> \fIx f y\fP\*(<::\*(:> \fIcommands\fP\0 ! 396: .TA ! 397: Define new function \fIf\fP with two arguments \fIx\fP and \fIy\fP ! 398: .JT ! 399: \*(<:TEST\*(:> \fIpr\fP\*(<::\*(:> \fIcommands\fP\0 ! 400: .TA ! 401: Define new predicate \fIpr\fP (succeeds/fails) with no arguments ! 402: .JT ! 403: \*(<:TEST\*(:> \fIpr x\fP\*(<::\*(:> \fIcommands\fP\0 ! 404: .TA ! 405: Define new predicate \fIpr\fP with one argument \fIx\fP ! 406: .JT ! 407: \*(<:TEST\*(:> \fIx pr y\fP\*(<::\*(:> \fIcommands\fP\0 ! 408: .TA ! 409: Define new predicate \fIpr\fP with two arguments \fIx\fP and \fIy\fP ! 410: .IT ! 411: \*(<:SHARE\*(:> \fItag\fP\*(<:,\*(:>.\^.\^. ! 412: .TA ! 413: Share permanent targets (before commands of unit) ! 414: .HE "Refinements" "(after the commands of a unit)" ! 415: .IT ! 416: \fIKEYWORD\fP \*(<::\*(:> \fIcommands\fP\0 ! 417: .TA ! 418: Define command refinement ! 419: .JT ! 420: \fItag\fP\*(<::\*(:> \fIcommands\fP\0 ! 421: .TA ! 422: Define expression or test refinement ! 423: .HE "Terminating commands" "" ! 424: .IT ! 425: \*(<:QUIT\*(:>\0 ! 426: .TA ! 427: Leave \*(<:HOW'TO\*(:> or command refinement, or leave \*B ! 428: .JT ! 429: \*(<:RETURN\*(:> \fIexpr\fP\0 ! 430: .TA ! 431: Leave \*(<:YIELD\*(:> or expression refinement and return value of \fIexpr\fP ! 432: .JT ! 433: \*(<:REPORT\*(:> \fItest\fP\0 ! 434: .TA ! 435: Leave \*(<:TEST\*(:> or test refinement and report outcome of \fItest\fP ! 436: .JT ! 437: \*(<:SUCCEED\*(:>\0 ! 438: .TA ! 439: The same, report success ! 440: .JT ! 441: \*(<:FAIL\*(:>\0 ! 442: .TA ! 443: The same, report failure ! 444: .bp ! 445: .rs ! 446: .sp 2c ! 447: .HE "EXPRESSIONS AND TARGETS" "" ! 448: .IT ! 449: \*(<:666\*(:>, \*(<:3.14\*(:>\0 ! 450: .TA ! 451: Exact constant ! 452: .IT ! 453: \*(<:2.93E8\*(:>,\ \*(<:3E+8\*(:>,\ \*(<:3.14E-9\*(:>\0 ! 454: .TA ! 455: Approximate constant ! 456: .IT ! 457: \fIexpr\fP\*(<:,\*(:>\fIexpr\fP\*(<:,\*(:>\^.\^.\^.\0 ! 458: .TA ! 459: Compound ! 460: .IT ! 461: \fItag\fP\*(<:,\*(:>\fItag\fP\*(<:,\*(:>\^.\^.\^.\0 ! 462: .TA ! 463: Identifier (may also be used as target) ! 464: .IT ! 465: \fItext\fP\|\*(<:@\*(:>\|\fIp\fP\0 ! 466: .TA ! 467: \&\*(<:"ABCD"@2 = "BCD"\*(:> ! 468: .\"Trimmed text, from \fIp\fP-th character on (also target) ! 469: .IT ! 470: \fItext\fP\*(<:|\*(:>\fIq\fP\0 ! 471: .TA ! 472: \&\*(<:"ABCD"|3 = "ABC"\*(:> ! 473: .\"The same, first \fIq\fP characters (also target) ! 474: .IT ! 475: \fItext\fP\|\*(<:@\*(:>\|\fIp\fP\*(<:|\*(:>\fIq\fP\0 ! 476: .TA ! 477: \&\*(<:"ABCD"@2|1 = "BCD"|1 = "B"\*(:> ! 478: .\"The same, from \fIp\fP-th on, first \fIq\fP characters (also target) ! 479: .IT ! 480: \fItable\fP\*(<:[\*(:>\fIexpr\fP\*(<:]\*(:>\0 ! 481: .TA ! 482: Table selection (also target) ! 483: .IT ! 484: \&\*(<:"Jan"\*(:>,\ \*(<:"Feb"\*(:>,\ \*(<:"Won't!"\*(:>\0 ! 485: .TA ! 486: Textual displays (empty: \*(<:""\*(:> or \*(<:''\*(:>) ! 487: .IT ! 488: \&\*(<:"value\ =\ `expr`;"\*(:>\0 ! 489: .TA ! 490: Conversion of \*(<:expr\*(:> to text ! 491: .IT ! 492: \*(<:{1;\ 2;\ 2;\*(:>\ .\^.\^.\^\*(<:}\*(:>\0 ! 493: .TA ! 494: List display (empty: \*(<:{}\*(:>) ! 495: .IT ! 496: \*(<:{1..10}\*(:>,\ \*(<:{'a'..'z'}\*(:>\0 ! 497: .TA ! 498: List of consecutive values ! 499: .IT ! 500: \*(<:{['Jan']: 1; ['Feb']: 2; \*(:>.\^.\^.\^\*(<:}\*(:>\0 ! 501: .TA ! 502: Table display (empty: \*(<:{}\*(:>) ! 503: .IT ! 504: \fIf\fP,\ \fIf x\fP,\ \fIx f y\fP\0 ! 505: .TA ! 506: Result of \*(<:YIELD\*(:> \fIf\fP (no permanent effects) ! 507: .IT ! 508: \fItag\fP\0 ! 509: .TA ! 510: Result of refinement (no permanent effects) ! 511: .HE "TESTS" "" ! 512: .IT ! 513: \fIx\fP \*(<:<\*(:> \fIy\fP,\ \fIx\fP \*(<:<=\*(:> \fIy\fP,\ \fIx\fP \*(<:>=\*(:> \fIy\fP,\ \fIx\fP \*(<:>\*(:> \fIy\fP\0 ! 514: .TA ! 515: Order tests ! 516: .IT ! 517: \fIx\fP \*(<:=\*(:> \fIy\fP,\ \fIx\fP \*(<:<>\*(:> \fIy\fP ! 518: .TA ! 519: \& (\*(<:<>\*(:> means `not equals'; ! 520: .IT ! 521: \&\*(<:0\ <=\ d\ <\ 10\*(:>\0 ! 522: .TA ! 523: \& an exact number \fInever\fP equals an approximate one) ! 524: .IT ! 525: \fIpr\fP,\ \fIpr x\fP,\ \fIx pr y\fP\0 ! 526: .TA ! 527: Result of \*(<:TEST\*(:> \fIpr\fP (no permanent effects) ! 528: .IT ! 529: \fItag\fP\0 ! 530: .TA ! 531: Result of refinement (no permanent effects) ! 532: .IT ! 533: \fItest\fP\ \*(<:AND\*(:>\ \fItest\fP\ \*(<:AND\*(:>\ .\^.\^.\0 ! 534: .TA ! 535: Fails as soon as one of the tests fails ! 536: .IT ! 537: \fItest\fP\ \*(<:OR\*(:>\ \fItest\fP\ \*(<:OR\*(:>\ .\^.\^.\0 ! 538: .TA ! 539: Succeeds as soon as one of the tests succeeds ! 540: .IT ! 541: \*(<:NOT\*(:>\ \fItest\fP ! 542: .IT ! 543: \*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0 ! 544: .TA ! 545: Sets \fItag\fP, .\^.\^. on success ! 546: .IT ! 547: \*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0 ! 548: .TA ! 549: Sets \fItag\fP, .\^.\^. on failure ! 550: .IT ! 551: \*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:IN\*(:> \fItlt\fP \*(<:HAS\*(:> \fItest\fP\0 ! 552: .TA ! 553: Sets \fItag\fP, .\^.\^. on failure ! 554: .IT ! 555: \*(<:SOME\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0 ! 556: .TA ! 557: Sets \fItag\fP, .\^.\^. on success ! 558: .IT ! 559: \*(<:EACH\*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0 ! 560: .TA ! 561: Sets \fItag\fP, .\^.\^. on failure ! 562: .IT ! 563: \*(<:NO\ \ \*(:> \fItag\fP\*(<:,\*(:>\^.\^.\^. \*(<:PARSING\*(:> \fItext\fP \*(<:HAS\*(:> \fItest\fP\0 ! 564: .TA ! 565: Sets \fItag\fP, .\^.\^. on failure ! 566: .bp ! 567: .rs ! 568: .sp 2c ! 569: .HE "PREDEFINED FUNCTIONS AND PREDICATES" ! 570: \fBFunctions on numbers\fP ! 571: .IT ! 572: \&\*(<:~\*(:>\fIx\fP\0 ! 573: .TA ! 574: Approximate value of \fIx\fP ! 575: .IT ! 576: \*(<:+\*(:>\fIx\fP,\ \fIx\fP\*(<:+\*(:>\fIy\fP,\ \fIx\fP\*(<:-\*(:>\fIy\fP,\ \*(<:-\*(:>\fIx\fP,\ \fIx\fP\*(<:*\*(:>\fIy\fP,\ \fIx\fP\*(<:/\*(:>\fIy\fP ! 577: .IT ! 578: \fIx\fP\*(<:**\*(:>\fIy\fP\0 ! 579: .TA ! 580: \fIx\fP raised to the power \fIy\fP ! 581: .IT ! 582: \fIn\fP\ \*(<:root\*(:>\ \fIx\fP,\ \*(<:root\*(:>\ \fIx\fP,\ \*(<:abs\*(:>\ \fIx\fP,\ \*(<:sign\*(:>\ \fIx\fP ! 583: .IT ! 584: \fIn\fP\ \*(<:round\*(:>\ \fIx\fP\0 ! 585: .TA ! 586: \fIx\fP rounded to \fIn\fP digits after decimal point ! 587: .IT ! 588: \*(<:round\*(:>\ \fIx\fP,\ \*(<:floor\*(:>\ \fIx\fP,\ \*(<:ceiling\*(:>\ \fIx\fP ! 589: .TA ! 590: Rounded to whole number ! 591: .IT ! 592: \fIa\fP\ \*(<:mod\*(:>\ \fIn\fP\0 ! 593: .TA ! 594: Remainder of \fIa\fP on division by \fIn\fP ! 595: .IT ! 596: \*(<:*/\*(:>\fIx\fP\0 ! 597: .TA ! 598: Numerator of exact number \fIx\fP ! 599: .IT ! 600: \*(<:/*\*(:>\fIx\fP\0 ! 601: .TA ! 602: Denominator ! 603: .IT ! 604: .in 0 ! 605: \&\*(<:e\*(:>,\ \*(<:exp\*(:>\ \fIx\fP,\ \*(<:log\*(:>\ \fIx\fP,\ \fIb\fP\ \*(<:log\*(:>\ \fIx\fP ! 606: .IT ! 607: \*(<:pi\*(:>,\ \*(<:sin\*(:>\ \fIx\fP,\ \*(<:cos\*(:>\ \fIx\fP,\ \*(<:tan\*(:>\ \fIx\fP ! 608: .IT ! 609: \fIx\fP\ \*(<:atan\*(:>\ \fIy\fP,\ \*(<:atan\*(:>\ \fIx\fP ! 610: .HE "Functions on texts" ! 611: .IT ! 612: \fIt\fP\*(<:^\*(:>\fIu\fP\0 ! 613: .TA ! 614: \fIt\fP and \fIu\fP joined into one text ! 615: .IT ! 616: \fIt\fP\*(<:^^\*(:>\fIn\fP\0 ! 617: .TA ! 618: \fIt\fP repeated \fIn\fP times ! 619: .IT ! 620: \fIx\fP\*(<:<<\*(:>\fIn\fP\0 ! 621: .TA ! 622: \fIx\fP converted\ to\ text\ and\ aligned\ left\ in\ field\ of\ width\ \fIn\fP ! 623: .IT ! 624: \fIx\fP\*(<:><\*(:>\fIn\fP\0 ! 625: .TA ! 626: The same,\ centered ! 627: .IT ! 628: \fIx\fP\*(<:>>\*(:>\fIn\fP\0 ! 629: .TA ! 630: The same, aligned right ! 631: .HE "Functions and predicates on texts, lists and tables" ! 632: .IT ! 633: \*(<:keys\*(:> \fItable\fP ! 634: .TA ! 635: List of all keys in \fItable\fP ! 636: .IT ! 637: \*(<:#\*(:>\fItlt\fP\0 ! 638: .TA ! 639: Number of elements in \fItlt\fP ! 640: .IT ! 641: \fIe\fP\*(<:#\*(:>\fItlt\fP\0 ! 642: .TA ! 643: Number of elements equal to \fIe\fP ! 644: .IT ! 645: \fIe\fP \*(<:in\*(:> \fItlt\fP,\ \fIe\fP \*(<:not'in\*(:> \fItlt\fP ! 646: .TA ! 647: Test for presence or absence ! 648: .IT ! 649: \*(<:min\*(:> \fItlt\fP\0 ! 650: .TA ! 651: Smallest element of \fItlt\fP ! 652: .IT ! 653: \fIe\fP \*(<:min\*(:> \fItlt\fP\0 ! 654: .TA ! 655: Smallest element larger than \fIe\fP ! 656: .IT ! 657: \*(<:max\*(:> \fItlt\fP,\ \fIe\fP \*(<:max\*(:> \fItlt\fP ! 658: .TA ! 659: Largest element ! 660: .IT ! 661: \fIn\fP \*(<:th'of\*(:> \fItlt\fP\0 ! 662: .TA ! 663: \fIn\fP-th element ! 664: .HE "THE CHARACTERS" ! 665: .IT ! 666: \*(<: !"#$%&'()*+,-./\*(:> ! 667: .TA ! 668: This is the order of all characters ! 669: .JT ! 670: \*(<:0123456789:;<=>?\*(:> ! 671: .TA ! 672: that may occur in a text. ! 673: .JT ! 674: \*(<:@ABCDEFGHIJKLMNO\*(:> ! 675: .TA ! 676: (The first is a space.) ! 677: .JT ! 678: \*(<:PQRSTUVWXYZ[\\]^_\*(:> ! 679: .JT ! 680: \*(<:`abcdefghijklmno\*(:> ! 681: .JT ! 682: \*(<:pqrstuvwxyz{|}~\*(:> ! 683: .bp ! 684: .pl 0 ! 685: .ch fo
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.