Commit | Line | Data |
---|---|---|
1b43bbee C |
1 | .ds s 1 |
2 | .TH FP 1 "28 April 1983" | |
3 | .UC 4 | |
4 | .SH NAME | |
5 | fp \- Functional Programming language compiler/interpreter | |
6 | .SH SYNOPSIS | |
7 | .B fp | |
8 | .SH DESCRIPTION | |
9 | .PP | |
10 | .I Fp | |
11 | is an | |
12 | interpreter/compiler that implements the applicative language proposed | |
13 | by John Backus. It is written in | |
14 | .SM | |
15 | .BR "FRANZ LISP" . | |
16 | .PP | |
17 | In a functional programming language | |
18 | intent is expressed | |
19 | in a mathematical style devoid of assignment statements | |
20 | and variables. | |
21 | Functions compute by value only; there are no side-effects | |
22 | since the result of a computation depends solely on the inputs. | |
23 | .PP | |
24 | .I Fp | |
25 | "programs" consist of | |
26 | .I functional expressions \- | |
27 | primitive and user-defined | |
28 | .I fp | |
29 | functions | |
30 | combined by | |
31 | .I functional forms. | |
32 | These forms take functional arguments | |
33 | and return functional results. | |
34 | For example, the composition | |
35 | operator | |
36 | .I '@' | |
37 | takes two functional arguments and returns a function | |
38 | which represents their composition. | |
39 | .PP | |
40 | There exists a single operation in | |
41 | .I fp | |
42 | \&\- | |
43 | .I application. | |
44 | This operation causes the system to evaluate the indicated function using | |
45 | the single argument | |
46 | as input | |
47 | (all functions are monadic). | |
48 | .SH GETTING STARTED | |
49 | .PP | |
50 | .I Fp | |
51 | invokes the system. | |
52 | .I Fp | |
53 | compiles functions into | |
54 | .IR lisp (1) | |
55 | source code; | |
56 | .IR lisp (1) | |
57 | interprets this code | |
58 | (the user may compile this code using the | |
59 | liszt (\*s) compiler to gain a factor of 10 in performance). | |
60 | .I Control D | |
61 | exits back to the shell. | |
62 | .I Break | |
63 | terminates any computation in progress and resets any open file units. | |
64 | .I )help | |
65 | provides a short summary of all user commands. | |
66 | .SH FILES | |
67 | .DT | |
68 | /usr/ucb/lisp the FRANZ LISP interpreter | |
69 | .br | |
70 | /usr/ucb/liszt the liszt compiler | |
71 | .br | |
72 | /usr/doc/fp the User's Guide | |
73 | .SH SEE ALSO | |
74 | .PP | |
75 | lisp(\*s), liszt(\*s). | |
76 | .PP | |
77 | .I The Berkeley FP user's manual, | |
78 | available on-line. | |
79 | The language is described in the August 1978 issue of | |
80 | .I CACM | |
81 | (Turing award lecture by John Backus). | |
82 | .SH BUGS | |
83 | .PP | |
84 | If a non-terminating function is applied as the result of loading a file, | |
85 | then control is returned to the user immediately, everything | |
86 | after that position in the file is ignored. | |
87 | .PP | |
88 | FP incorrectly marks the location of a syntax error on | |
89 | large, multi-line function definitions or applications. | |
90 | .SH AUTHOR | |
91 | Scott B. Baden |