|
|
1.1 ! root 1: .NH 1 ! 2: Special Functions ! 3: .NH 2 ! 4: Quad Functions ! 5: .PP ! 6: Quad functions are special operators ! 7: that perform tasks which are ! 8: closer to the system level, ! 9: but are accessible within \*a functins. ! 10: There are many available quad functions ! 11: in \*u \*a, ! 12: but only two are probably of interest ! 13: to you at this time. ! 14: The interested user is referred to ! 15: Appendix C for a complete list. ! 16: .IP "\*(qdrun xxx" 14 ! 17: This function can be used to execute ! 18: a \*u process from inside an \*a function. ! 19: The variable ``xxx'' should be a character ! 20: vector containing the command ! 21: to be executed by the \*u ! 22: shell (command program). ! 23: For example, ! 24: to run the ``who'' program, ! 25: the expression might be: ! 26: .sp ! 27: \*(qdrun \'who\' ! 28: .sp ! 29: <or, using a variable> ! 30: .sp ! 31: x { \'who\' ! 32: .br ! 33: \*(qdrun x ! 34: .sp ! 35: Note that any output generated by ! 36: the program run by ``\*(qdrun'' is ! 37: .I not ! 38: written to a script file if ``)script'' ! 39: was used. ! 40: .IP "\*(qdcr xxx" 14 ! 41: This quad function is a standard ! 42: \*a quad function. ! 43: The argument ``xxx'' should be ! 44: a character vector containing ! 45: the name of an \*a function ! 46: which exists in the internal workspace. ! 47: ``\*(qdcr'' will return a ! 48: character array containing the ! 49: function definition in ASCII. ! 50: This provides ! 51: a very convenient way ! 52: to get the ! 53: listing of an \*a function. ! 54: For example, ! 55: if you want to define ! 56: the array ``fnlist'' to ! 57: be the function definition ! 58: of the function ``xyz'', ! 59: you can say: ! 60: .sp ! 61: fnlist { \*(qdcr \'xyz\' ! 62: .sp ! 63: or, equivalently, ! 64: .sp ! 65: fnname { \'xyz\' ! 66: .br ! 67: fnlist { \*(qdcr fnname ! 68: .sp ! 69: Another possible use of ! 70: ``\*(qdcr'' is to list a function ! 71: on the terminal without ! 72: having to use ``)editf''. ! 73: (As we discussed earlier, ! 74: when an error occurs ! 75: you cannot edit a suspended ! 76: function without using ``)reset'' ! 77: first, ! 78: and ``)reset'' gets rid of ! 79: the current state of \*a.) ! 80: However, ! 81: the ``)list'' system command ! 82: is far more efficient ! 83: for this purpose ! 84: and is therefore strongly recommended. ! 85: .NH 2 ! 86: I-Beam Functions ! 87: .PP ! 88: The I-beam function in \*u \*a is a method ! 89: of obtaining system parameters. ! 90: The available I-beams are listed in ! 91: Appendix D ! 92: for the interested user; ! 93: they are not generally required ! 94: for the average \*a session.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.