Commit | Line | Data |
---|---|---|
bb56dd76 BJ |
1 | .de lt |
2 | .ta 1.2i 2.4i 3.6i 4.8i 6.0i | |
3 | .. | |
4 | .TH LISP UCB 2/27/79 UCB | |
5 | .SH NAME | |
6 | lisp \- lisp interpreter | |
7 | .SH SYNOPSIS | |
8 | .B lisp | |
9 | .SH DESCRIPTION | |
10 | .PP | |
11 | .I Lisp | |
12 | is a provisional lisp interpreter. | |
13 | It only runs in eval mode. Built in functions are named | |
14 | in lower case, and case is distinguished. | |
15 | It is being transmuted from a subset of lisp | |
16 | as provided by the Harvard \s-2UNIX\s0 lisp in | |
17 | use at \s-2UCB\s0, to a subset of \s-2MIT\s0's \s-2MACLISP\s0. | |
18 | .PP | |
19 | The following functions are provided as machine code: | |
20 | .LP | |
21 | Lambda functions: | |
22 | .if n .ta 13n 26n 39n 52n 65n | |
23 | .if t .lt | |
24 | .sp | |
25 | .nf | |
26 | atom dptr load putd rplacd | |
27 | bcdp drain null putprop set | |
28 | car eq numberp ratom terpr | |
29 | cdr equal outfile read | |
30 | close eval patom readc | |
31 | concat get pntlen retbrk | |
32 | cons getd portp return | |
33 | cont infile print rplaca | |
34 | .fi | |
35 | .LP | |
36 | Nlambda functions (possibly simulating ones which are normally lambdas): | |
37 | .if n .ta 13n 26n 39n 52n 65n | |
38 | .if t .lt | |
39 | .sp | |
40 | .nf | |
41 | add1 difference onep quotient zerop | |
42 | and exit or reset | |
43 | break go plus setq | |
44 | cond minus product sub1 | |
45 | cond mod prog sum | |
46 | def not quote times | |
47 | .fi | |
48 | .PP | |
49 | The following functions are provided as lisp code (and at the moment | |
50 | must be read in by saying (load 'auxfns): | |
51 | .if n .ta 13n 26n 39n 52n 65n | |
52 | .if t .lt | |
53 | .sp | |
54 | .nf | |
55 | add copy length numbp | |
56 | append defevq linelength pp_etc | |
57 | apply* defprop member reverse | |
58 | charcnt defprop memcar terpri | |
59 | chrct diff memcdr | |
60 | conc last nconc | |
61 | .fi | |
62 | .PP | |
63 | All of the above functions are documented in the ``Harvard Lisp Manual.'' | |
64 | .PP | |
65 | The following functions are provided as in \s-2MIT\s0's \s-2MACLISP\s0. | |
66 | .if n .ta 13n 26n 39n 52n 65n | |
67 | .if t .lt | |
68 | .sp | |
69 | .nf | |
70 | alphalessp do mapc setsyntax | |
71 | apply explodec mapcar throw | |
72 | ascii exploden prog2 tyi | |
73 | catch funcall progn tyipeek | |
74 | defun implode progv tyo | |
75 | .fi | |
76 | .PP | |
77 | ``Hairy control structure'' is provided by the Nlambda | |
78 | (process\ \fIcommand\ inport\ outport\fR) | |
79 | where | |
80 | .I command | |
81 | is an atom whose print name is some command that you would wish typed | |
82 | at the terminal, e.g. ``neqn\ |\ nroff\ \-ms''; | |
83 | where | |
84 | .I inport | |
85 | and | |
86 | .I outport | |
87 | are atoms which will be bound to port descriptors for use in | |
88 | communication with the subprocess. | |
89 | .I Inport | |
90 | is a port to a pipe which will be read by the subprocess as | |
91 | its standard input. If | |
92 | .I Inport | |
93 | is \fInil\fR (or not present), the subprocess inherits the standard | |
94 | input, and lisp waits for the subprocess to die. | |
95 | If | |
96 | .I Inport | |
97 | is the atom | |
98 | .I t | |
99 | lisp continues without waiting. | |
100 | .SH AUTHORS | |
101 | Originally written by Jeff Levinsky, Mike Curry, and John Breedlove. | |
102 | Keith Sklower made it work and is maintaining the current version. | |
103 | The garbage collector was implemented by Bill Rowan. | |
104 | .SH SEE ALSO | |
105 | Harvard \s-2UNIX\s0 Lisp Manual | |
106 | .br | |
107 | Maclisp Manual | |
108 | .br | |
109 | `UCB Franz Lisp Manual, Version 1 (in preparation)' | |
110 | .SH "BUGS" | |
111 | The status bits for | |
112 | .I setsyntax | |
113 | are not the same as for \s-2MACLISP\s0. | |
114 | .PP | |
115 | Closing | |
116 | down a pipe doesn't always seem to work correctly. | |
117 | .PP | |
118 | Arrays are not implemented in version 1. |