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