|
|
1.1 root 1: .\" Copyright (c) 1983, 1990 The Regents of the University of California.
2: .\" All rights reserved.
3: .\"
4: .\" Redistribution and use in source and binary forms are permitted provided
5: .\" that: (1) source distributions retain this entire copyright notice and
6: .\" comment, and (2) distributions including binaries display the following
7: .\" acknowledgement: ``This product includes software developed by the
8: .\" University of California, Berkeley and its contributors'' in the
9: .\" documentation or other materials provided with the distribution and in
10: .\" all advertising materials mentioning features or use of this software.
11: .\" Neither the name of the University nor the names of its contributors may
12: .\" be used to endorse or promote products derived from this software without
13: .\" specific prior written permission.
14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17: .\"
18: .\" @(#)fp.1 6.4 (Berkeley) 6/26/90
19: .\"
20: .Dd June 26, 1990
21: .Dt FP 1
22: .Os BSD 4.2
23: .Sh NAME
24: .Nm fp
25: .Nd Functional Programming language compiler/interpreter
26: .Sh SYNOPSIS
27: .Nm fp
28: .Sh DESCRIPTION
29: .Nm Fp
30: is an
31: interpreter/compiler that implements the applicative language proposed
32: by John Backus. It is written in
33: .Em FRANZ LISP .
34: .Pp
35: In a functional programming language
36: intent is expressed
37: in a mathematical style devoid of assignment statements
38: and variables.
39: Functions compute by value only; there are no side-effects
40: since the result of a computation depends solely on the inputs.
41: .Pp
42: .Nm Fp
43: .Em programs
44: consist of
45: .Em functional expressions
46: \-
47: primitive and user-defined
48: .Nm fp
49: functions
50: combined by
51: .Em functional forms .
52: These forms take functional arguments
53: and return functional results.
54: For example, the composition
55: operator
56: .Sq Ic @
57: takes two functional arguments and returns a function
58: which represents their composition.
59: .Pp
60: There exists a single operation in
61: .Nm fp
62: \&\-
63: .Em application .
64: This operation causes the system to evaluate the indicated function using
65: the single argument
66: as input
67: (all functions are monadic).
68: .Sh GETTING STARTED
69: .Pp
70: .Nm Fp
71: invokes the system.
72: .Nm Fp
73: compiles functions into
74: .Xr lisp 1
75: source code;
76: .Xr lisp 1
77: interprets this code
78: (the user may compile this code using the
79: .Xr liszt 1
80: compiler to gain a factor of 10 in performance).
81: .Ic Control D
82: exits back to the shell.
83: .Ic Break
84: terminates any computation in progress and resets any open file units.
85: .Ic )help
86: provides a short summary of all user commands.
87: .Sh FILES
88: .Dw liszt
89: .Di L
90: .Dp Pa lisp
91: the FRANZ LISP interpreter
92: .Dp Pa liszt
93: the liszt compiler
94: .\" .Dp Pa /usr/doc/fp
95: .\" the User's Guide
96: .Dp
97: .Sh SEE ALSO
98: .Xr lisp 1 ,
99: .Xr liszt 1 ,
100: .br
101: .Em The Berkeley FP user's manual ,
102: available on-line.
103: The language is described in the August 1978 issue of
104: .Em CACM
105: (Turing award lecture by John Backus).
106: .Sh BUGS
107: If a non-terminating function is applied as the result of loading a file,
108: then control is returned to the user immediately, everything
109: after that position in the file is ignored.
110: .Pp
111: .Nm Fp
112: incorrectly marks the location of a syntax error on
113: large, multi-line function definitions or applications.
114: .Sh HISTORY
115: .Nm Fp
116: appeared in 4.2 BSD.
117: .Sh AUTHOR
118: Scott B. Baden
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.