

 
Manual Reference Pages  HOC (1)
NAME
hoc  interactive floating point language
CONTENTS
Synopsis
Description
Examples
Source
Bugs
SYNOPSIS
hoc [
file ... ]
[
e
expression ]
DESCRIPTION
Hoc interprets a simple language for floating point arithmetic,
at about the level of BASIC, with Clike syntax and
functions.
The named
files are read and interpreted in order.
If no
file is given or if
file is
hoc interprets the standard input.
The
e option allows input to
hoc to be specified on the command line, to be treated as if it appeared in a file.
Hoc input consists of
expressions and
statements. Expressions are evaluated and their results printed.
Statements, typically assignments and function or procedure
definitions, produce no output unless they explicitly call
print.
Variable names have the usual syntax, including
the name
by itself contains the value of the last expression evaluated.
The variables
E,
PI,
PHI,
GAMMA and
DEG are predefined; the last is 59.25..., degrees per radian.
Expressions are formed with these Clike operators, listed by
decreasing precedence.

^ 
exponentiation

!  ++ 
* / %
+ 
> >= < <= == !=
&&

= += = *= /= %=  


Built in functions are
abs,
acos,
asin,
atan (one argument),
cos,
cosh,
exp,
int,
log,
log10,
sin,
sinh,
sqrt,
tan, and
tanh. The function
read(x) reads a value into the variable
x and returns 0 at EOF;
the statement
print prints a list of expressions that may include
string constants such as
"hello\n".
Control flow statements are
ifelse,
while, and
for, with braces for grouping.
Newline ends a statement.
Backslashnewline is equivalent to a space.
Functions and procedures are introduced by the words
func and
proc;
return is used to return with a value from a function.
EXAMPLES
func gcd(a, b) {
temp = abs(a) % abs(b)
if(temp == 0) return abs(b)
return gcd(b, temp)
}
for(i=1; i<12; i++) print gcd(i,12)
SOURCE
/usr/local/plan9/src/cmd/hoc
SEE ALSO
bc(1),
dc(1)
B. W. Kernighan and R. Pike,
The Unix Programming Environment,
PrenticeHall, 1984
BUGS
Error recovery is imperfect within function and procedure definitions.
Visit the GSP FreeBSD Man Page Interface. Output converted with manServer 1.07. 