The ICI Programming Lanaguage: Contents Previous chapter Next chapter
ICI is a general purpose interpretive programming language that has dynamic typing and flexible data types with the basic syntax, flow control constructs and operators of C. It is designed for use in many environments, including embedded systems, as an adjunct to other programs, as a text-based interface to compiled libraries, and as a cross-platform scripting language with good string-handling capabilities.
The ICI language and source is free for any use but without warranties of any kind.
This document is the basic reference for the core language and functions. There is also an extensive man page that includes details of command line invocation not described here. Additional documentation is provided in the ICI source releases. The ICI web site is maintained by Andy Newman at http://ici.sf.net/
ICI source code is maintained publicly at Sourceforge ( http://sf.net/ ) under the project name ici. Releases are available there.
This document relates to ICI version 4.0.
The following people are due much thanks for their contributions: Andy Newman, Chris Amies, Luke Kendall, Giordano Pezzoli, Philip Hazel, Henry Spencer, Yiorgos Adamopoulos, Gary Gendel, Alexander Demenshin, Oliver Bock, and Tim Vernum.
float|int = abs(float|int)
angle = acos(x)
mem = alloc(nwords [, wordz])
string = argv[]
array = array(any...)
float = asin(x)
value = assign(struct, key, value)
angle = atan(x)
angle = atan2(y, x)
float|struct = calendar(struct|float)
return = call(func [, any...], array|NULL)
float = ceil(x)
close(file)
int = cmp(a, b)
any = copy(any)
any = any:copy()
x = cos(angle)
float = cputime([float])
file = currentfile(["raw"])
int = debug([int])
del(aggr, key)
array = dir([path,] [regexp,] [format])
int = eq(obj1, obj2)
int = eof([file])
eventloop()
exit([string|int|NULL])
float = exp(x)
array = explode(string)
fail(string)
value = fetch(struct, key)
value = float(x)
float = floor(x)
flush([file])
float = fmod(x, y)
file = fopen(name [, mode])
string = getchar([file])
string = getcwd()
string = getenv(string)
string = getfile([file])
string = getline([file])
string = gettoken([file [, seps]])
array = gettokens([file [, seps [, terms, [delims]]]])
string = gsub(string, string|regexp, string)
string = implode(array)
struct = include(string [, scope])
value = int(any)
subpart = interval(str_or_array, start [, length])
int = inst|class:isa(any)
int = isatom(any)
array = keys(struct)
any = load(string)
float = log(x)
float = log10(x)
mem = mem(start, nwords [, wordz])
file = mopen(mem [, mode])
int = nels(any)
inst = class:new()
float = now()
number = num(x)
scope = parse(source [, scope])
string = parsetoken(file)
any = parsevalue(file)
string = path[]
any = pop(array)
file = popen(string, [flags])
float = pow(x, y)
printf([file,] fmt, args...)
profile(filename)
any = push(array, any)
put(string [, file])
putenv(string)
int = rand([seed])
reclaim()
re = regexp(string [, int])
re = regexpi(string [, int])
rejectchar(file, str)
rejecttoken(file)
remove(string)
any = rpop(array)
any = rpush(array, any)
current = scope([replacement])
int = seek(file, int, int)
set = set(any...)
func = signal(string|int [, string|func])
string = signam(int)
x = sin(angle)
sleep(num)
array = smash(string [, regexp [, replace...] [, include_remainder])
file = sopen(string [, mode])
array = sort(array [, func [, arg]])
string = sprintf(fmt, args...)
x = sqrt(float)
string = strbuf([string])
string = strcat(string [, int] , string...)
string = string(any)
struct = struct([super,] key, value...)
string = sub(string, string|regexp, string)
current = super(struct [, replacement])
int = system(string)
x = tan(angle)
exec = thread(callable, args...)
string = tochar(int)
int = toint(string)
any = tokenobj(file)
any = top(array [, int])
int = trace(string)
string = typeof(any)
string = version()
array = vstack([int])
wakeup(any)
The ICI Programming Lanaguage: Contents Previous chapter Next chapter