|
|
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.