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