home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
doc
/
ipd283.txt
< prev
next >
Wrap
Text File
|
2000-07-03
|
51KB
|
1,263 lines
The Icon Program Library; Version 9.3.3
Ralph E. Griswold and Gregg M. Townsend
Department of Computer Science
The University of Arizona
Tucson, Arizona
IPD283b
July 3, 2000
http://www.cs.arizona.edu/icon/docs/ipd283.htm
------------------------------------------------------------------------
Introduction
The Icon program library consists of Icon programs, procedures,
documentation, and data. Version 9.3 of Icon is required for some parts of
the library [1,2].
Additional documentation about the Icon program library is available on the
World Wide Web:
http://www.cs.arizona.edu/icon/
Look in the Program Library section.
Unloading the Library
Note: The complete library, when unloaded, requires about 12MB of disk
space. In particular, some documents in PostScript form are quite large. If
your disk space is limited, take this into consideration before starting to
unload.
The library is designed to be unloaded in a hierarchy that contains separate
directories for different kinds of material. Material that requires graphics
[2] is in separate directories whose names begin with g. If Icon doesn't
support graphics on your platform, you can ignore these directories.
The directory structure for this version of the library is
|--data data
|
|--docs documentation
|
|--incl include files
|
|--packs packages
|
|--procs procedures
|
|--progs programs
ipl---|
|--gdata as above, but for graphics
|
|--gdocs
|
|--gincl
|
|--gpacks
|
|--gprocs
|
|--gprogs
|
|--mdata as above, but for MT Icon
|
|--mdocs
|
|--mincl
|
|--mpacks
|
|--mprocs
|
|--mprogs
|
|--cfuncs loadable C functions
The packages contain material that is too complex fit into other parts of
the hierarchy or that does not conform to the library structure.
The loadable C functions are for platforms on which Icon supports the
built-in function loadfunc(). See the README in that directory for more
information.
The library files are packaged in different ways for different platforms.
See the installation instructions for your platform.
Link and Include Search Paths
Many library programs link procedures. For example, options() is used by
many programs for processing command-line options and is linked from "ucode"
files obtained from translating options.icn.
Icon searches for ucode files first in the current directory and then in
directories specified by the IPATH environment variable. IPATH consists of a
sequence of blank-separated path names. The search is in the order of the
names. For example, on a UNIX system running csh,
setenv IPATH "../procs /usr/icon/ilib"
results in a search for file names in link declarations first in the current
directory, then in ../procs, and finally in /usr/icon/ilib.
Files included by the preprocessor directive $include are searched for on
LPATH. It has the same form as IPATH.
The method of setting IPATH and LPATH varies from system to system.
Since the current directory always is searched first, IPATH and LPATH need
not be set if ucode and include files are placed in the same directory as
the program files. See the next section.
Installing the Library
Installing the Icon program library consists of two steps: (1) translating
the procedure files to produce ucode files and (2) compiling and linking the
programs.
Ucode files are produced by translating the procedure files with the -c
option to icont, as in
icont -c options
which translates options.icn. The result is two ucode files named options.u1
and options.u2. The .u1 file contains the procedure's code and the .u2 file
contains global information about the procedure. It is these files that a
link declaration such as
link options
needs.
Scripts for translating the procedure files are provided with the
distribution. Once the procedure files have been translated, the ucode files
can be moved to any place that is accessible from IPATH.
The basic and graphics programs are compiled and linked using icont without
the -c option, as in
icont deal
which comiples and links deal.icn, a program that produces randomly selected
bridge hands. The MT Icon programs must be compiled with mticont, not icont.
The result of compiling and linking a program is an "icode" file. On some
platforms, the name of the icode file is the same as the name of the program
file with the .icn suffix removed (for example, deal). On other platforms,
the icode file name has the suffix .exe in place of .icn (for example,
deal.exe). Scripts for compiling and linking the programs are provided with
distributions for individual platforms. Instructions for building the
programs contained in separate packages are included with those packages.
Some platforms (UNIX and MS-DOS, for example) support the direct execution
of icode files. On such systems, an icode file can be run just by entering
its name on the command line, as in
deal
On other systems, it is necessary to run iconx with the icode file as an
argument, as in
iconx deal
(This also works on systems that support direct execution.) Note that the
suffix (if any) need not be mentioned.
Many library programs take arguments and options from the command line.
Options are identified by dashes. For example, in
deal -h 10
the -h 10 instructs deal to produce 10 hands.
Icode files can be moved to any location accessible from your PATH. Ucode
and include files are needed only during linking. They need not be
accessible when icode files are run.
Usage Notes
It is important to read the documentation at the beginning of programs and
procedures in the library. It includes information about special
requirements, limitations, known bugs, and so forth.
Some of the programs in the Icon program library are quite large and may
require more memory than is available on some platforms.
Disclaimer
The material in the Icon program library is contributed by users. It is in
the public domain and can be freely copied, although author information
should be left intact and any modifications should be properly attributed.
Neither the Icon Project nor the authors of material in the Icon program
library assume any responsibility as to its correctness or its suitability
for any purpose. The responsibility for use of the Icon program library lies
entirely with the user.
Contents
Programs -- progs
adlcheck check for bad address list data
adlcount count address list entries
adlfiltr filter address list entries
adlfirst write first line of addresses
adllist list address list fields
adlsort sort address list entries
allocwrl display storage allocation in VRML
animal play "animal" guessing game
applyfnc apply function to lines of a file
banner display banner
based do BASIC-style editing
bfd compute best-fit-descending bin packing
bj play blackjack game
blnk2tab convert strings of 2 or more blanks to tabs
c2icn assist C-to-Icon porting
calc simulate desk calculator
catlines concatenate lines of a file
chars list the different characters in a file
chkhtml check HTML files
chop restrict numerical values
colm arrange data into columns
colorup produce a weave structure from unravel data
comfiles list common files in two directories
compare look for duplicates in a collection of files
comply83 check compliance with MS-DOS name restrictions
concord produce concordance
conman convert units
countlst count items in a list
cross display intersection of words
crypt encrypt file
csgen generate context-sensitive sentences
cstrings print strings in C files
cwd write current working directory
daystil calculate the number of days until a given date
dd2draft create draft information from drawdown
dd2res compute loom resources needed from drawdown
dd2wif produce a WIF from drawdown
ddfdump print the contents of an ISO 8211 DDF file
deal deal bridge hands
declchck detect possible declaration errors
delam delaminate file
delamc delaminate file using tab characters
dellines delete lines from a file
delta list differences between successive numbers
detex strip LaTeX commands
diffn show differences among files
diffsort reorder "diff" output
diffsum count lines affected by a diff
diffu show differences in files
diffword list different words
digcol produce nth column of digit data
diskpack produce packing list for diskettes
drawup create draft from drawdown
duplfile find directories with same files
duplproc find duplicate declarations
edscript produce script for ed(1)
empg make expression-evaluation programs
envelope address envelopes
evaluate evaluate Icon expressions
extweave extract weaving specifications from weave file
farb generate Farberisms
farb2 generate Farberisms
filecnvt convert line terminators
filehtml create Web page with links to files
fileprep prepare file information for IPL indexes
fileprnt display characters in file
filerepl replicate file
filesect produce section of a file
filexref cross-reference files by components
filtskel skeleton for generic filter
findstr find embedded character strings
findtext retrieve data from files indexed by idxtext
fixhqx strip headers from BinHex files
fixpath replace path in a binary file
floats count floats
fnctab list function usage
fnctmpl produce function templates
format word wrap a range of text
former format long string in fixed-length lines
fract approximate real number as a fraction
fset do set operations on file specifications
fuzz perform fuzzy pattern matching
gcomp produce complement of file specification
geddump dump contents of GEDCOM file
gediff "diff" for use with ged
gener generate sequence from Icon expression
genfile generate sequence from Icon expression in file
genqueen solve arbitrary-size n-queens problem
getcol extract column from data
getlines extract lines from a file
gftrace generating function tracing procedures
graphdem demonstrate simple bar graphics
grpsort sort groups of lines
hcal4unx Jewish/Civil calendar in UNIX
headicon add header to Icon program
hebcalen combination Jewish/Civil calendar
hebeng print mixed Hebrew/English text
hotedit edit a Mosaic hotlist
hr play horse-race game
htget get Web file using HTTP protocol
htprep prepare HTML files
huffstuf huffman coding
hufftab compute Huffman state transitions
ibar equalize comment bars in Icon programs
ibrow browse Icon files for declarations
icalc simulate infix desk calculator
icalls tabulate Icon calls
icn2c assist Icon-to-C porting
icontent list Icon procedures
icvt ASCII/EBCDIC program conversion
idepth report maximum recursion depth
idxtext creating indexed text-base
ifilter filter lines of file
ifncsgen generate procedure wrappers for functions
igrep string search similar to egrep
iheader list Icon program library headers
ihelp give on-line help for Icon
iidecode decode text in style of uudecode
iiencode encode text in the style of uuencode
ilnkxref produce Icon link cross reference
ilump lump linked Icon source files
imagetyp show types of image files
imaghtml produce Web page for image files
indxcomp assist in index compilation
ineeds print modules required by an Icon program
inter find common values in two lists
interpe interpret Icon expressions
interpp interpret Icon programs
ipatch patch iconx path in executable
ipldoc collect library documentation
iplindex produce indexed listing of the program library
iplkwic produce keywords in context for IPL
iplweb generate web pages from IPL header comments
ipower write sequence of powers
ipp preprocess Icon programs
iprint print Icon program
iprofile profile Icon procedure usage
ipsort sort Icon procedures
ipsplit split Icon program into files
ipxref cross reference Icon program
irsort sort Icon record declaration
irunerr print Icon runtime errors
isd2disd show convert ISD draft to drawdown form
isd2wif produce WIF from ISD
iseq write sequence of integers
isize measure size of an Icon program
isrcline count code lines in Icon program
istrip strip comments from Icon program
itab entab an Icon program
itags create tags file for Icon programs
itrbksum give summary of traceback
itrcfltr filter trace output
itrcsum give summary of trace output
iundecl find undeclared Icon identifiers
iversion show icode version
iwriter write Icon code to write input
knapsack fill a container
krieg play kriegspiel
kross show intersections of strings
kwic produce keywords in context
kwicprep prepare information for IPL KWIC listings
la give exponent approximation for large numbers
labels format mailing labels
lam laminate files
latexidx process LaTeX idx file
lc count lines in file
lcfile convert file names to lowercase
lcn tp convert file names to all lowercase
limitf limit throughput
lindcode produce Icon code from L-system specifications
lindsys generate sentences in 0L-systems
lineseq write a sequence of values on a line
link2url convert links to URLs
lisp interpret LISP programs
lister list filess
listhtml create Web page with links to listed files
listviz visualize lists
literat manage literature information
ll list shortest and longest lines in a file
loadmap show load map of UNIX object file
longest write longest line in a file
lower map file names to lowercase
lssum sum the file sizes in an ls -l listing
lsysmap map L-system symbols
maccvt convert Macintosh special characters to ASCII
makepuzz make find-the-word puzzle
mapcolrs map colors in lists
midisig show signature of a MIDI file
missile play missile command game
miu generate strings from MIU system
mkpasswd make passwords
monkeys generate random text
morse convert string to Morse code
mover move files from one name to another
mr read mail
mszip ZIP a directory for MS-DOS use
mtf3 map tar file
mtutils fpr MT Icon
newicon produce new Icon program file
newsrc organize UNIX .newsrc file
nim play the game of nim
nocr convert MS-DOS text files to UNIX
normalize normalize numeric channel
oldicon update the date in an Icon program header
pack package multiple files
paginate insert formfeeds
papply apply procedure to lines of file
parens produce random balanced strings
pargen generate context-free parser
parse parse simple statements
parsex parse arithmetic expressions
patchu implement UNIX-like patch
pbkdump dump HP95 phone book file
pdecomp list primes factors of an integer
polydemo demonstrate polynomial library
post post news
press archive files
pretrim filter out first terms in an input stream
procprep produce input to index for procedure comments
procwrap produce Icon procedure wrappers
proto show Icon syntactic forms
psrsplit separate psrecord.icn output pages
pt produce parse table generator
puzz create word search puzzle
qei evaluate Icon expressions interactively
qt announce time in English
queens generate solutions to the n-queens problem
ranstars display star field
rcat output a file from back to front
recgen generate context-free recognizer
repeats repeat stream
reply reply to news-articles or mail
repro self-reproduce
revfile reverse the order of lines in a file
revsort sort strings backwards
roffcmds list roff commands and macros
rsg generate randomly selected sentences
ruler write a character ruler
sample "sample" input stream
scale scale numeric values in visualization stream
scramble scramble a document
setmerge combine sets of text items
shar create UNIX shell archive
shortest write shortest line in a file
shuffile shuffle lines in a file
sing sing The Twelve Days of Christmas
slice write long line as multiple short lines
snake play the snake game
solit play solitaire
sortname order by last name
splitlit create string literal
spread format tab-separated data columns
streamer append lines of file into one long line
strimlen produce lengths of string images.
strpsgml strip/translate SGML tags
tabexten tabulate file extensions
tablc tabulate characters in a file
tablw tabulate words in a file
tabulate tabulate lines in a file
textcnt tabulate properties of text file
textcvt convert text file formats
toktab summarize Icon token counts
trim trim lines in a file
ttt play tic-tac-toe
turing simulate a Turing machine
unique delete identical adjacent lines
unpack unpackage files
upper map file names to uppercase
url2link convert bookmarked URLs to link references
utrim remove unneeded procs from ucode
verse generate bizarre verses
versum produce versum sequence
vnq display solutions to n-queens problem
vrepl replicate input lines
weblinks check links in HTML files
what identify source-code information
when show file age
wif2isd convert WIFs to ISDs
wshfdemo demonstrate weighted shuffle procedure
xtable show character code translations
yahtz play yahtzee
yescr convert UNIX files to DOS format
zipsort sort mailing labels by ZIP code
Programs -- gprogs
autotile produce tile from XBM image
binpack demonstrate some bin packing algorithms
bitdemo demonstrate bitplanes
bme edit bitmap
bpack demonstrate some bin packing algorithms
browser demonstrate file-navigation "dialog"
ca21 investigate cellular automata
calib calibrate color monitor
cameleon allow user to change colors in an image
chernoff imitate a Chernoff face
clrs2pdb create custom palettes from color lists
coloralc test color allocation
colormap display palette from color list
colorwif a WIF from unravel data
colrbook show the named colors
colrname browse color names
colrpick pick RGB or HLS colors
concen play solitaire card game Concentration
cquilts create "chaotic square quilts"
cw manipulate color ways
design1 draw spokes design
design2 draw circular design
design3 draw square design
dlgvu display USGS DLG map files
drawcolr display color list
drip demonstrate color map animation
etch distributed Etch-A-Sketch
facebend generate caricatures
fetti explore families of confetti squares
fev display text in fisheye view
fileimag create GIF image of file text
findrpt find smallest repeat in a repeat pattern.
findtile find tiles in an image
flake draw a fractal snowflake
flohisto display float histograms
fmap2pdb create custom palettes from color maps
fontpick show the characters of a font
fract demonstrate fractal lines
fractclr map Fractint color maps to Icon color lists
fstarlab draw fractal stars
gallery display many images at once
gamma perform gamma correction on images
gif2isd produce a ISD from bi-level image
gif2wif produce a WIF from black & white image
gifs2pdb produce custom palettes from GIF images
giftoims convert GIF files to image strings
giftopat convert GIF image to hex-form pattern
gpxtest test graphics procedures
gridedit create and edit binary arrays
gxplor explore graphics facilities
hb Hearts & Bones game
histo display simple histogram
hsvpick pick RGB or HSV colors
hvc pick colors for Tek HVC space
img create images
img2grid convert images to grids
imgcolrs list colors in images.
imgpaper tile images to form wallpaper
imgtolst convert image to list of pixel colors
imlreduc reduce bi-level image strings
imltogif convert image strings to GIF files
ims2pat convert image string to bi-level pattern
imstogif convert image strings to GIF files
ipicker print name of selected images
isd2gif create woven image from ISD
isd2grid create grid plots for ISDs
isd2ill create images from ISDs
iview display image files
julia1 display the Julia set
kaleid produce kaleidoscope
kaleido produce kaleidoscopic display
keypunch simulate a keypunch
koch demonstrate Koch curves
lindcomp compile 0L-systems
linden generate sentences in 0L-systems
lorenz display Lorenz strange attractor
lsys experiment with Lindenmayer systems
mandala draw mandala design
mandel1 display the Mandelbrot set
mandel2 draw the Mandelbrot set
mercator display surface of HLS color cones
mirroror mirror images given on command line
moire display Moire patterns
offtiler tile images with offset
orbit display quadratic orbit
painterc convert Painter color sets to Icon colors
palcheck check palindromic sentences
palette display an Icon image palette
patfetch extract patterns from a file
penelope edit graphic patterns
pextract separate good and bad patterns
pgmtoims make an image from a PGM file
picktile pick a tile out of an image
plat create image file with specified colors
plotter display planes of 3-space coordinates
pme edit pixmaps
poller record image as pixel coordinates.
procater display concatenation sizes
profile display scrolling histogram
profiler display number magnitudes
prompt prompt in a window
randweav create random weavable patterns
randweb draw random web design
recticle draw rectangles recursively
rectile extract portion of image
rects tile window with colored rectangles
repeater repeat image
rings draw tiles of rings and circles
rolypoly draw ``abstract'' art
rstarlab draw regular stars
scroll scroll image
scroller scroll image
seamcut cut image for seamless tiling
selectle select tile from an image
sensdemo demonstrate sensor routines
showcolr list colors in Icon palettes
showtile display tiles
sier generalized Sierpinski's triangle
sier1 draw the Sierpinski triangle
sier2 display the Sierpinski fractal
snapper display images
spectra report color spectra in images
spiral draw polygonal spirals
spiro display spirograph lines
splat drop paint splatters in a window
spokes draw spokes design
striper make striped pattern from image edge
subdemo show the turtle graphics subset
sym4mm draw symmetrically
symdraw draw symmetrically
sympmm produce pmm symmetry composite images.
testpatt show test patterns
textures show various 4x4 patterns
tgdemo demonstrate turtle graphics
tilescan select tile from an image
travels animate the traveling salesman problem
trycolor investigate color specifications
tryfont demonstrate X font rankings
uix translate user interfaces
unravel find thread colors for weaving
viewpane view image through a "pane"
vqueens display solutions to the n-queens problem
webimage produce Web page for image files
wevents report Icon window events
wheel show wheel of colors
wifs2pdb create palette database from WIFs
xbm2pat convert XBM file to pattern specification
xformpat apply transformation to patterns
xgamma configure X color correction
xpmtoims make Icon images from XPM files
zoomtile show a tile magnified
Programs -- mprogs
alcscope visualize allocation as a kaleidoscopic display
alcview display allocation events in various ways
algae show expression evaluation as ``algae''
anim show animated display of Icon source code
callcnt count calls
cmpsum tabulate comparisons
cnvsum tabulate type-conversion activity
cvtsum count conversion event tuples
events show events
evstream show events
evsum tabulate event codes
exprsum tabulate operator and function evaluation
listev list events
locus trace execution locus
memsum tabulate memory allocation
mmm show allocation as a miniature "MemMon"
napoleon track memory usage by type
novae show allocations as exploding stars
numsum tabulate numerical computation
opersum tabulate operation activity
ostrip show virtual-machine op-code strip
playev play back events
program display portion of a program in a window
recordev record events
roll display the program counter on a stripchart
scat produce call/result scatterplot
scater display visualize string concatenation
strsum tabulate string computation
strucget collect SP stuctures
vc coordinate visualization programs
vmsum tabulate virtual-machine operations
Procedures -- procs
abkform process HP95LX appointment books
adjuncts gettext and idxtext
adlutils process address lists
allof conjunction control operation
allpat produce all n-character patterns of characters
ansi ANSI-based terminal control
apply apply a list of functions to an argument
argparse parse pseudo-command-line
array n-dimensional arrays
asciinam ASCII name of unprintable character
base64 base64 encodings for MIME (RFC 2045)
basename produce base name of a file
binary pack and unpack values
bincvt convert binary data
binop apply binary operation to list of values
bitint convert integers and bit strings
bitstr bits in Icon strings
bitstrm read and write strings of bits in files
bkutil HP95LX phone books and appointment books
bold enbolden and underscore text
bufread buffered read and lookahead
calendar data and time calculation and conversion
calendat get date from Julian Day Number
calls calls as objects
capture echo output to a second file
cartog cartographic projection
caseless perform caseless scanning
codeobj encode and decode Icon data
colmize arrange data into columns
colrspec produce VRML color specifications
complete complete partial input string
complex perform complex arithmetic
conffile read files of directives for "initialization"
converge produce continued-fraction convergents
convert various conversions
created determine number of structures created
currency formatting currency
curves generate points on plain curves
datefns dates
datetime date and time operations
ddfread reading ISO 8211 DDF files
dif check for differences
digitcnt count number of digits in file
divide perform long division
ebcdic convert between ASCII and EBCDIC
empgsup support empg
emptygen meta-translation code generation
equiv compare structures
escape interpret Icon literal escapes
escapesq deal with character string escapes
eval evaluate string as a call
evallist produce a list generated by expression
eventgen meta-variant code generation
everycat generating all concatenations
expander convert character pattern expressions
exprfile produce programs on the fly
factors related to factors and prime numbers
fastfncs integer functions using fastest method
feval evaluate string as function call
filedim compute file dimensions
filenseq get highest numbered filename in a sequence
filesize get the size of a file
findre find regular expression
ftype produce type for file
fullimag produce complete image of structured data
gauss compute Gaussian distributions
gdl get directory lists
gdl2 get directory lists
gedcom reading GEDCOM files
gen meta-variant code generation
gener generate miscellaneous sequences
genrfncs generate sequences
geodat geodetic datum conversion
getchlib getch for UNIX
getkeys get keys for a gettext file
getmail parse mail file
getpaths generate elements in path
gettext gettext (simple text-base routines)
graphpak manipulating directed graphs
hetero test structure typing
hexcvt hexadecimal conversion
hostname produce host name
html parsing HTML
ibench support Icon benchmarking
ichartp a simple chart parser
identgen meta-translation code generation
identity produce identities for Icon types
ifncs wrappers for function tracing
iftrace trace Icon function calls
image produce images of Icon values
inbits read variable-length characters
indices produce indices
inserts build tables with duplicate keys
intstr create string from bits
io input and output
iolib termlib support
iscreen screen functions
ispf communicate between Icon and ISPF
iterfncs recursive functions using iteration
itlib termlib-type tools
itlibdos MS-DOS termlib-type tools
itokens tokenizing Icon code
itrcline filter out non-trace lines
ivalue convert string to Icon value
jumpque jump element to head of queue
kmap map keyboard letter forms into letters
labeler produce successive labels
lastc string scanning
lastname produce last name
lcseval evaluate linear congruence parameters
lindgen rewriting 0L-systems
lindstrp interpret L-system output as striped pattern
list2tab write list as tab-separated string
lists manipulate lists
loadfile produce and load program on the fly
longstr match longest string
lrgapprx approximate integer values
lu LU manipulation
makelsys convert L-Systems to records
mapbit map string into bit representation
mapstr map() for strings
matchlib lexical matching
math mathematical computations
matrix matrix manipulation
memlog log memory usage
memrfncs recursive functions using memory
mixsort sort tables with case mixing
models model Icon functions
morse convert string to Morse code
mset multi-sets
namepfx produce prefix portion of name
ngrams produce n-grams
noncase case-independent matching
numbers related to numbers
openchk aid in open/close debugging
opnames produce opcode/names table
opsyms produce table to map opcodes to symbols
options get command-line options
outbits write variable-length characters
packunpk pack and unpack decimal strings
parscond condense parse tree
partit partition integer
pascal write Pascal triangles
pascltri compute a row of Pascal's Triangle
patch UNIX-like patch(1)
patterns SNOBOL4-style pattern matching
patword find letter patterns
pbkform process HP95 phone book files
pdco programmer-defined control operations
phoname generate letters for phone numbers
plural produce plural of English noun
polystuf manipulating polynomials
popen pipes
printcol format columnar data
printf printf-style formatting
prockind indicate kind of procedure
procname produce name of procedure
progary place program in a array
pscript explicitly writing PostScript
ptutils relating to objects in 3-space
random related to random numbers
rational arithmetic on rational numbers
readcpt read produce "carpet" from file
readtbl read user-created stripsgml table
reassign access RE groupings and format into a string
rec2tab write record as string
recog recognition
records manipulate records
recrfncs recursive functions
recurmap map recurrence declarations to procedures
reduce perform operation on list of arguments
regexp regular-expression pattern matching
repetit find smallest repetition pattern in list
revadd generate reverse-summed integers
rewrap advanced line rewrap
rexx communicate between Icon and Rexx
rng generate random numbers
sandgen "evaluation sandwiches" code
scan related to scanning
scanmodl model string scanning
scanset setup for string scanning procedures
segment segment string
senten1 generate sentences
sentence generate sentences in file
seqfncs designing with sequences
seqimage produce string image of Icon result sequence
seqops perform operations on finite sequences
serial return serial number of structure
sername produce serialized names
sets set manipulation
showtbl show contents of a table
shquote quote word for UNIX-like shells
signed put bits into signed integer
skelproc Procedure
sort sorting
sortt sort table into records
soundex produce Soundex code for name
soundex1 Soundex algorithm
speedo indcate percentage of completion
spin spin cursor
statemap table of states and abbreviations
step generate in real increments
str2toks convert string to tokens
strings manipulating strings
strip strip characters from a string
stripcom strip comments from Icon line
stripunb strip unbalanced material
tab2list put tab-separated strings in list
tab2rec put tab-separated strings in records
tables table manipulation
tclass classify values as atomic or composite
tieutils related to weaving tie-ups
title produce title portion of name
titleset produce set of titles
tmpname get temporary file name
tokgen token counting
trees manipulating trees and dags
tuple process n-tuples
typecode produce letter code for Icon type
unsigned put bits unsigned integer
usage service functions
varsub perform UNIX-shell-style substitution
verncnt compute number of n-digit versum numbers
version produce Icon version number
vhttp validating an HTTP URL
vrml support creation of VRML files
vrml1lib support construction of VRML 1.0 files
vrml2lib support construction of VRML 2.0 files
wdiag write values with labels
weavgenr Links to procedures related to sequence drafting
weaving implement weaving expressions
weavutil support numerical weavings
weighted shuffle list with randomness
wifisd convert WIF to xencoded ISD
wildcard UNIX-like wild-card pattern matching
word scan UNIX-style command line words
wrap wrap output lines
writecpt write a "carpet" file
xcode save and restore Icon data
xcodes save and restore Icon data
xforms do matrix transformations
ximage produce string image of structured data
xrotate rotate values in list or record
zipread reading files from ZIP archives
Procedures -- gprocs
attribs set attributes via dialog
autopost activate PostScript recorder
barchart dynamically growing barchart
bevel drawing beveled objects
bitplane bitplane manipulation
button pushbutton sensors
cardbits constructing playing card images
cells creating and coloring panels of cells
clip clipboard operations
clipping clipping lines
clrnames generate color names
clrutils convert color formats
color dealing with colors
colorway manipulate color ways
colrlist produce list of colors
colrmodl convert between color models
curves generate points on plain curves
cwutils support color ways
decay decaying-displays for windows
dialog dialogs
dialogs link to dialog
distance compute distance in n-dimensions
drag dragging rectangles
drawcard draw a playing card
drawlab draw figures
dsetup creating dialog boxes
enqueue queued events
event produces events from a window event history
evmux window event multiplexor
evplay "play back" recorded window events
evrecord record window events
fetchpat fetch a pattern specification
fstars produce traces of fractal stars
fstartbl produce calls for fractal stars
gdisable disable graphics functions
getcolrs getting color palette
gifsize return size of GIF file
glabels produce graph ticks
glib graphics
gobject geometrical objects
gpxlib graphics tasks
gpxop graphics operations
graphics graphics
grecords graphics
gtrace process graphic traces
ifg tell if graphics are running
imagedim getting image dimensions
imageseq write sequences of images
imgcolor produce table of colors in area
imrutils deal with image records
imscanon put bi-level image string in canonical form
imscolor manipulating images
imsutils manipulate image specifications
imutils link graphics utilities
imxform transform image matrices
interact support interactive applications
isdplot create grid plots for ISDs
joinpair connect pairs of points
jolygs produce traces of "jolygons"
linddefs produce table of L-systems
linddraw draw L-System strings
lindgen rewriting 0L-systems
lindrec L-systems
lindterp interpret and draw L-System strings
lsystem Lindenmayer systems support
mirror mirror tile
modlines produce trace of modular lines
navitrix perform file navigation
optwindw open window with standard options
orbits produce traces of orbits
overlay overlay an image in a window
palettes programmer-defined palettes
patutils manipulate patterns
patxform transform patterns in row form
pixelmap create image from pixel list
popular show "popularity" of colors in image string
psrecord PostScript record of window
putpixel write quantized, processed pixel
randarea generate random points in areas
randfigs generate random figures
rawimage write and read images in raw format
repeats repeat image
rgbcomp perform computations on RGB values
rgbrec produce RGB record from color specification
rpolys produce traces of regular polygons
rstars generate traces of regular stars
rstartbl produce calls for regular stars
select get selection from window
slider slider sensors
spirals produce traces of fractal stars
spokes draw spokes
strpchrt dynamic stripchart for windows
subturtl turtle-graphics (subset version)
symrand generate random points
tieedit create and edit binary arrays
tile tile window
tiler tile window with image
turtle turtle-graphics interface
twists produce traces of "twists"
vbuttons buttons
vcoupler coupler variables
vdialog dialog boxes
vfilter change filter mode in sliders and scrollbars
vframe pane frame vidgets
vgrid vidget grids
vidgets vidgets
viewpack visualize color streams
viface interfacing vidgets
vlist a scrollable list vidget
vmenu vidget menus
vpane vidget panes
vquery window queries
vradio radio buttons
vscroll scrollbars
vsetup vidget application setup
vslider sliders
vstd standard lookups
vstyle drawing buttons
vtext textual vidgets
wattrib attributes
weavegif produce a woven image from a draft
win open bare-bones window
window opening window
winsnap take snapshot of a portion of a window
wipe wipe window area
wopen graphics input/output
xbfont X font selection
xcolor link color
xcompat compatibility with 8.10 graphics
xform transform points
xformimg transform image
xgtrace draw traces of points
xio link window I/O
xplane link bitplane
xputpixl link putpixel
xqueue link enqueue
xutils graphics utilities
Procedures -- mprocs
colormap map type event to color
colortyp produce table of colors for Icon types
em_setup set up execution monitors
emutils support MT-Icon monitors
evaltree maintain activation tree
evinit event monitoring
evnames map between event codes and names
evsyms produce table of event codes and symbols
evtmap map event code names to values
evutils support event monitoring
hexlib hexagons
opname map VM opcodes to their names
typebind produce table of graphic contexts for type
typesyms map type codes to event codes
viewpack visualize color streams
visprocs visualization code
Include files -- incl
invkdefs operator symbols
lshade VRML 1.0 ornament
opdefs Icon virtual-machine instructions
Include files -- gincl
keysyms event key symbols
maccolor Macintosh color mappings
vdefns visual interface
xcolors X color names
xnames graphic procedure names
Include files -- mincl
etdefs artificial event codes
evdefs event codes
Loadable C Functions -- cfuncs
bitcount count bits in an integer
files manipulate file attributes
fpoll poll file for input
internal access Icon internals
lgconv convert large integer to string
osf return OSF system table value
pack pack and unpack binary data
ppm manipulate PPM files in memory
process manipulate UNIX processes
tconnect open TCP connection
Data -- data
*.csg data for csg.icn
*.krs data for kross.icn
*.lbl data for labels.icn
*.rsg data for rsg.icn
*.tok sample output of syntactic token counting
*.tur data for turing.icn
*.txt plain text
chart.gmr data for ichartp.icn
conman.sav data for conman.icn
farber.sen ``Farberisms''
header skeleton header for Icon program files
hebcalen.dat data read by hebcalen.dat
hebcalen.hlp help file for hebcalen.dat
hebcalpi.hlp data read by ProIcon version of hebcalen.dat
icon.wrd English words containing the substring ``icon''
ihelp.dat data for ihelp.icn
noci.wrd English words containing the substring ``noci''
palin.sen Palindromic sentences
pt*.gmr data for pt.icn
sample.grh sample data for graphpak.icn
skeleton.icn skeleton used to create/update Icon programs
termcap.dos termcap data for MS-DOS
termcap2.dos alternative termcap data for MS-DOS
verse.dat vocabulary for verse.icn
Data -- gdata
*.gif GIF image files
*.ims image strings in Icon code format
*.lch data for gpacks/tiger/tgrmap.icn
*.pts data for facebend.icn
clr.pack "pack" containing Icon's color palettes
gpxtest.gif GIF image from gpxtest.icn
gxplor.dat test script for gxplor.icn
iml.pak image strings in "pack" format
linden.dat input to linden.icn
uix.dat data for testing XIB-to-VIB conversion
vibapp.icn sample VIB application
xibapp.icn sample XIB application
xnames.ed ed(1) script to convert 8.10 function names to 9.0
Data -- mdata
There presently are no data files for MT-Icon.
Documentation -- docs
address.doc documentation for address procedures
hebcalen.hlp documentation for hebcalen.icn
hebcalpi.hlp documentation for hebcalpi.icn
iconmake.doc make skeleton for Icon
ipp.doc supplementary documentation for ipp.icn
mr.man manual page for mr.icn
post.1 manual page source for post.icn
polywalk.txt description of polynomial programs
procs.pdx index to procedures
pt.man manual page for pt.icn
*.fdx indexes to files
Documentation -- gdocs
gprocs.pdx index to procedures
gtrace.doc documentation for graphic traces
linden.dat input to linden.icn
penelope.ps PostScript documentation for penelope.icn
vib.ps PostScript documentation for interface builder
vidgets.ps PostScript documentation for vidgets
*.fdx indexes to files
Documentation -- mdocs
mprocs.pdx procedure indexes
*.fdx file indexes
Packages -- packs
euler Euler compiler and interpreter
ibpag2 LR-based parser generator
idol Idol; object-oriented Icon written in Icon
itweak interactive debugger
loadfunc C functions loaded dynamically
skeem Scheme language, implemented in Icon
tcll1 parser-generator and parser
Packages -- gpacks
carpets numerical carpets
drawtree tree-drawing package
ged text editor
htetris Tetris game
tiger map drawing from Census TIGER data
vib graphics interface builder
weaving programs and procedures related to weaving
xtiles game
Packages -- mpacks
There are no MT-Icon packages at present.
Contributions to the Icon Program Library
New material for the Icon program library always is welcome. See Reference 4
for guidelines and submission instructions.
Feedback
If you encounter problems with material in the Icon program library, please
let us know. If you can provide corrections or improvements to library
material, please send them by electronic mail or on a diskette.
We can be reached as follows:
Icon Project
Department of Computer Science
The University of Arizona
P.O. Box 210077
Tucson, AZ 85721-0077
U.S.A.
(520) 621-6613 (voice)
(520) 621-4246 (fax)
icon-project@cs.arizona.edu
Acknowledgements
Dozens of persons have contributed material to this release of the Icon
program library. See the program material itself for authorship information.
References
1. R. E. Griswold, C. L. Jeffery and G. M. Townsend, Version 9.3 of the Icon
Programming Language, The Univ. of Arizona Icon Project Document IPD278,
1996.
2. G. M. Townsend, R. E. Griswold and C. L. Jeffery, Graphics Facilities for
the Icon Programming Language; Version 9.3, The Univ. of Arizona Icon
Project Document IPD281, 1996.
3. C. L. Jeffery, The MT Icon Interpreter, The Univ. of Arizona Icon Project
Document IPD169, 1993.
4. R. E. Griswold, Icon Program Library Submissions, The Univ. of Arizona
Icon Project Document IPD151,1996.
------------------------------------------------------------------------
Icon home page