## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

General conventions

Numeric constants can be written in exponential notation (e.g, 1.7e-4 for 1X7 ¢ 10−4 ) or in the radix notation <radix>r<constant>, e.g., 16r0D0A for hexadecimal 0D0A. String constants are written between double quotes ("X X X "). Escapes include: \b backspace, \e escape, \f formfeed, \l linefeed, \n newline, \r return, \t horizontal tab, \’ single quote, \" double quote, \ddd for octal code ddd, and \xdd for hexadecimal code dd. Variable names must start with a letter, followed by letters, digits, or underbar (_). They can be any length. The comment symbol is #; comments extend to the end of the line.

Built-in types

Fundamental types integer: Signed integers. They may have many digits (thousands, even) but

extended-precision arithmetic can be slow.

**real: Real numbers. string: Strings of characters. Any character can be stored in a string, including
**

nulls.

cset: An improper subset of the character set.

Structural types file: An open ﬁle handle. list: A list of zero or more values of any type or mixture of types. Written as: [e1 , e2 , X X X , en ] null: The type of variables to which no value is assigned. procedure: An Icon procedure. table: An associative array, containing a set of ordered pairs (kY v ) where each k is a unique key value and v is any value associated with that key. co-expression: See the manual.

Reserved words

break by case create default do else end every fail global if initial link local next not of procedure record repeat return static suspend then to until while

New Mexico Tech Computer Center Icon programming language quick reference Page 1

Declarations

global <name>, X X X record <name>{<ﬁeld>, X X X }# Create with: local <name>, X X X static <name>, X X X var := <name>()

Control structures

break e case n of{ x1 : e 1 x2 : e 2 XXX default: ed } create x every e1 do e2 fail if e1 then e2 [else e3 ] next not e repeat e return e suspend e until e1 do e2 while e1 do e2 e1 | e2 | e e \ n s ? e

Exit the enclosing loop and produce e Produces the ei whose xi matches n

Create a co-expression for x Iterate over outcomes of e1 Fail out of the current procedure Produces e2 if e1 succeeds, else e3 Go to the top of the loop Fails if e succeeds Repeat forever (or until break) Return e to the caller Suspend procedure, return e Loop while e1 is false Loop while e1 is true Outcome of e1 followed by outcome of e2 Produce e forever Produce no more than n results from e Establish s as &subject, evaluate e

“Preprocessor” features

$define n text $else $endif $error $ifdef n $ifndef n $include "f " $undef n

Deﬁne a textual substitution Else construct for $ifdef and $ifndef End of conditional compilation Signal a fatal compilation error Conditional compilation when n is deﬁned Conditional compilation when n is undeﬁned Include ﬁle f Undeﬁne a name

New Mexico Tech Computer Center

Icon programming language quick reference

Page 2

Operators

Precedence (e) {e;X X X } [e,X X X ] e[e] e(e)

All unary operators Highest precedence

\ @ ! ^ * / % ** + - ++ -|| |||

e | e e to e [by e] := := ? & ; ,

Unary operators +n -n ?n ?x ~ =s !x @e ^e *x .x /x \x Binary operators + - * / % ^ < <= = >= > ~= ++ -** || << <<= == >>= >> ~== ||| x @ e :=

New Mexico Tech Computer Center

All relationals

where is any binary operator Lowest precedence

Numeric value of n Negative of n Pseudorandom numberP [1Y n] for integers, for n 0 Randomly selected element of x Set complement of cset Sequence of elements from x Outcome of activating co-expression e Refresh co-expression e Size of x Value of x Is x undeﬁned? Is x deﬁned?

P [0Y 1)

tab(match(s))

b

Ambition, distraction, ugliﬁcation, derision Remainder Numerical comparison Set union Set difference Set intersection String concatenation Lexical comparison Concatenate two lists Activate co-expression e, transmit x to it Assignment

Page 3

Icon programming language quick reference

<:=: <-> === ~=== x & y x.y x := y s?e

Reversible assignment Exchange Reversible exchange Value comparison Produces y Structure ﬁeld reference Same as x := x y Establish s as subject within e

Built-in functions

Numeric functions abs(x) acos(x) asin(x) atan(y , x) dtor(x) exp(x) cos(x) iand(, ) icom() ior(x, y ) ishift(x, n) ixor(x, y ) log(x, ) rtod(x) sin(x) sqrt(x) tan(x) String functions any(, s, i, j ) bal(, l , r , s, i, j ) center(s, n, p) detab(s,i1 ,i2 ,X X X,in ) entab(s,i1 ,i2 ,X X X,in ) find(t, s, i, j ) left(s, n, p) many(, s, i, j ) map(s, f , t) match(t, s, i, j ) move(n) pos(n) repl(s, n)

New Mexico Tech Computer Center

Absolute value of integer or real Arccos, returns radians Arcsin, returns radians Arctan, default 2nd arg is 1 Degrees to radians Exponential Argument in radians Bitwise and Bitwise not (one’s complement) Bitwise or Shift x left n; negative n for right shift Bitwise exclusive or logb x; default is e Radians to degrees Argument in radians Square root Argument in radians Fails if s[i]TP , else produces i Balances l , r up to Centers s in ﬁeld of n, padded with p Untabify; default (,9) Tabify Find target t in source s Flush-left s in ﬁeld of n, padded with p Scan s while P Map characters from f to t in s. E.g., to upshift:

map(s, &lcase, &ucase) Is target t a preﬁx of s? Advance &pos by n, return part skipped Is &pos at n? Replicate n copies of s

Icon programming language quick reference

Page 4

reverse(s) right(s, n, p) tab(n) trim(s, ) upto(, s, i, j ) Structural functions char(o) copy(x) cset(x) delete(s, x) get(v) image(x) insert(s, x) integer(x) list(n, x) member(s, x) numeric(x) ord(s) pop(v) pull(v) push(v, x) put(v, x) real(x) seq(i,j ) set(v) sort() sort(t, k ) sortf(x, k ) string(x) table(x) type(x) System functions chdir(s) close(f ) delay(i) display(i, f ) exit(i) flush(f ) function() getch() getche() getenv(s) kbhit()

Reverse string Flush right s in ﬁeld of width n, pad p Set &pos to n, return string from old &pos to there Trim trailing characters P Scan s until a character P Character whose ordinal is o Structure copy Cast to cset Delete element x from set s Pop ﬁrst element of list v String image of x Insert x into set s Cast to integer List of n elements equal to x Set membership: is x P s? Cast to integer or real Ordinal of 1-character strings Pop ﬁrst element of list v Pop last element of list v Push x as ﬁrst element of v Push x as last element of v Cast to real Inﬁnite sequence: iY i + jY i + 2jY X X X Set of distinct elements in list v Sort a list Sort table t. Produces a list of 2-elt lists (i, v ) of indices and values; sort by i if k = 1, by v if k = 2. Sort lists and records, using the k th ﬁeld as key Cast to string New table with initial value x String describing the type of x

Change directory to s Close ﬁle Delay i milliseconds Stack traceback with locals, i levels Terminate with status i Flush output to ﬁle f Generates names of all builtin functions Get next character Get next character, no echo Value of environmental variable s Is there a character available for getch()?

New Mexico Tech Computer Center

Icon programming language quick reference

Page 5

open(nme, options )

Open a ﬁle: options taken from r (read), w (write), a (append), b (read/write), c (create), t (enable line terminator translation), and u (inhibit line terminator translation). Name of variable v Return next line from f Read next n characters from f , may be short, fails only if no characters remain Delete ﬁle whose name is s Rename ﬁle so as sn Set ﬁle position, origin 1; negative = before end Write the expressions and stop with exit status 1 Execute a command line Returns the variable named s Returns a ﬁle position Write expressions, then newline Write expressions, no newline

name(v ) read(f ) reads(f , n) remove(s) rename(so , sn ) seek(f , p) stop(e1 , X X X, en ) system(s) variable(s) where(f ) write(e1 , e2 , X X X ) writes(e1 , e2 , X X X ) Other operations

i to j [ by k ] e0 (e1 , e2 , X X X) p(e1 , e2 , X X X) s[i] s[i:j ] s[i+:j ] s[i-:j ] [e1 , e2 , X X X]

Arithmetic progression generator The outcome of ee0 Procedure or function call ith element of s Elements i through j Elements i through i+j Elements i-j through i Form a list from expressions

**Keywords (built-in variables)
**

&ascii &clock &cset &date &dateline &digits &e &errout &fail &host &input &letters &lcase &level &main &null &output

New Mexico Tech Computer Center

a cset of 7-bit ASCII hh:mm:ss Full character set, universe for csets yyyy/mm/dd Sunday, December 7, 1941 7:01 am 012X X X 9 2.71828X X X Standard error stream Fails Host system identiﬁcation Standard input stream aX X X zAX X X Z aX X X z Current procedure call level Co-expression for the initial call of main() The null value Standard output stream

Icon programming language quick reference Page 6

&phi &pi &pos &program &random &source &subject &time &trace &ucase &version

Golden ratio 0, 1.61803X X X % , 3.14159X X X Current scan position File name of executing program Pseudorandom seed Co-expression for the activator of the current coexpression Current scan string Milliseconds of cpu time since program start Controls procedure trace: 0 for none, -1 for I AX X X Z Current Icon version

Written by John W. Shipman (tcc-doc@nmt.edu). This version printed 2003-06-30. Copyright c 2001 by the New Mexico Institute of Mining and Technology.

New Mexico Tech Computer Center

Icon programming language quick reference

Page 7

- Promodeluploaded byKaizer Sky Montealegre
- MCQS for Computer scienceuploaded byEngr. Anas
- Curriculum BTech IT (1)uploaded byShaniya Fathimuthu
- Hello Youtubeuploaded byPatrickBernardo
- Tm246tre.00-Eng Structured Text (St) v3090uploaded byKaueKoschitzRoratto
- SEuploaded byanon_572289632
- Patran 2008 r1 PCL and Customizationuploaded byKevin
- NetLinx.LanguageReferenceGuideuploaded byVenkatesh Babu
- Array and Macro1uploaded byMadmanMSU
- Programminguploaded byChia Hong Chao
- C Language Quick Referenceuploaded bycikgu_usin
- Control Flow - MATLAB & Simulinkuploaded byShaukat Ali Shah
- VBA Notes for Professionalsuploaded byPeter Ranieri
- Lecture 3 - CpE 690 Introduction to VLSI Designuploaded byjvandome
- Lynn Frantecqueuploaded bypadils
- List Processinguploaded bygo2kaatt
- Untitleduploaded byshiva2mails
- Matlab Tutorialuploaded bykober2124
- ABAP Sample Programs.pdfuploaded byPunit
- Chapter 05 Controluploaded bysatkm87
- NA fileuploaded byRishi1986
- Assignment No 3 Solutionsuploaded byRaja Zulqurnain
- Lab 3 Repetitions Part1uploaded byAliOuchar
- stichnoth.pdfuploaded byCarlo
- lec1uploaded byjimmyboyjr
- Pseudo Code Basicsuploaded byMorrell Aberdeen
- dslsuploaded byqthermal
- Session 4.pptuploaded byMassSomesh
- 4.CONTROL STATEMENTS_MB.pptuploaded byPriyankar Kumar
- All Excell Functionsuploaded byrajesh_jeyachandran

- TCPDUMP Quick Referenceuploaded bybashwork
- vim Quick Referenceuploaded bybashwork
- XSLTquickrefuploaded bybashwork
- Linux Security Quickrefuploaded bybashwork
- php quickrefuploaded bybashwork
- Nessus Cheat Sheatuploaded bybashwork
- XML Quickrefuploaded bybashwork
- screen quickrefuploaded bybashwork
- Linux quickrefuploaded bybashwork
- Crefuploaded bybashwork
- html quickrefuploaded bybashwork
- Fortranuploaded bybashwork
- Debianuploaded bybashwork
- html entitiesuploaded bybashwork
- Cssuploaded bybashwork
- gdb quickrefuploaded bybashwork
- apache quickrefuploaded bybashwork
- Gdb Refcard Fullpageuploaded bybashwork

Close Dialog## Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

Loading