# Category:Icon

**Icon**

This

**programming language**may be used to instruct a computer to perform a task.

Official website |
---|

Execution method: | Compiled (bytecode) |
---|---|

Garbage collected: | Yes |

Parameter passing methods: | By value |

Type safety: | Safe |

Type strength: | Strong |

Type expression: | Implicit |

Type checking: | Dynamic |

See Also: |

Icon is a descendant of SNOBOL4 incorporating similar excellent string processing capabilities, built-in hash tables, success/failure based controls, dynamic storage, automatic type casting and coercion of values. Icon added more conventional procedural syntax, generator expressions, goal-directed evaluation that automatically searches for successful results. String scanning and matching superseded the pattern matching functionality of SNOBOL4.

Several extensions of Icon were developed to improve functionality. Many of these were unified with Unicon

## Related/Variants

## See Also

- Wikipedia: Icon
- Icon homepage
- Wikipedia: Unicon
- Book: The Icon Programming Language, 3rd Edition
- Book: Graphics Programming in Icon
- Book: Icon Programming for Humanists
- Presentation: Fundamentals of Icon Programming
- Archived issues of the Icon Newsletter from 1979-2000 discussing Icon programming
- Archived issues of the Icon Analysts from 1990-2001 discussing advanced Icon programming
- The Icon Programming Library and index

## Wiki Links

## Subcategories

This category has the following 3 subcategories, out of 3 total.

### @

- Icon Implementations (1 P)
- Icon User (17 P)

## Pages in category "Icon"

The following 200 pages are in this category, out of 551 total.

(previous page) (next page)### A

- A+B
- ABC problem
- Accumulator factory
- Ackermann function
- Add a variable to a class instance at runtime
- Align columns
- Almost prime
- Amb
- Anagrams
- Anagrams/Deranged anagrams
- Animation
- Anonymous recursion
- Append a record to the end of a text file
- Apply a callback to an array
- Arbitrary-precision integers (included)
- Arithmetic evaluation
- Arithmetic-geometric mean
- Arithmetic/Complex
- Arithmetic/Integer
- Arithmetic/Rational
- Array concatenation
- Array length
- Arrays
- Assertions
- Associative array/Creation
- Associative array/Iteration
- Associative array/Merging
- Averages/Arithmetic mean
- Averages/Mean angle
- Averages/Mean time of day
- Averages/Median
- Averages/Mode
- Averages/Pythagorean means
- Averages/Root mean square
- Averages/Simple moving average

### B

### C

- Caesar cipher
- Calculating the value of e
- Calendar
- Calendar - for "REAL" programmers
- Call a function
- Carmichael 3 strong pseudoprimes
- Case-sensitivity of identifiers
- Catalan numbers
- Catalan numbers/Pascal's triangle
- Catamorphism
- Character codes
- Check that file exists
- Chinese remainder theorem
- Cholesky decomposition
- Circles of given radius through two points
- Closest-pair problem
- Closures/Value capture
- Collections
- Color of a screen pixel
- Colour bars/Display
- Colour pinstripe/Display
- Combinations
- Combinations and permutations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compare a list of strings
- Compiler/lexical analyzer
- Compiler/syntax analyzer
- Compiler/virtual machine interpreter
- Compound data type
- Conditional structures
- Constrained random points on a circle
- Continued fraction
- Continued fraction/Arithmetic/Construct from rational number
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n)
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n1, continued fraction n2)
- Convex hull
- Conway's Game of Life
- Copy a string
- Count in factors
- Count in octal
- Count occurrences of a substring
- Count the coins
- CRC-32
- Create a file
- Create a file on magnetic tape
- Create a two-dimensional array at runtime
- Create an HTML table
- CSV data manipulation
- CSV to HTML translation
- Cumulative standard deviation
- CUSIP

### D

- Date format
- Date manipulation
- Day of the week
- Deal cards for FreeCell
- Decision tables
- Deepcopy
- Delete a file
- Detect division by zero
- Determine if a string is numeric
- Determine if only one instance is running
- Digital root
- Digital root/Multiplicative digital root
- Dijkstra's algorithm
- Dinesman's multiple-dwelling problem
- Discordian date
- Documentation
- Dot product
- Dragon curve
- Draw a clock
- Draw a pixel
- Dutch national flag problem

### E

- Empty program
- Empty string
- Enforced immutability
- Entropy
- Enumerations
- Environment variables
- Equilibrium index
- Ethiopian multiplication
- Euler method
- Evaluate binomial coefficients
- Even or odd
- Evolutionary algorithm
- Execute a Markov algorithm
- Execute a system command
- Execute Brain****
- Execute HQ9+
- Execute SNUSP
- Exponentiation operator
- Extend your language
- Extreme floating point values

### F

- Factorial
- Factors of a Mersenne number
- Factors of an integer
- Fibonacci n-step number sequences
- Fibonacci sequence
- Fibonacci word
- Fibonacci word/fractal
- File input/output
- File modification time
- File size
- Filter
- Find common directory path
- Find first and last set bit of a long integer
- Find limit of recursion
- Find the last Sunday of each month
- Find the missing permutation
- Find URI in text
- First class environments
- First-class functions
- First-class functions/Use numbers analogously
- Five weekends
- FizzBuzz
- Flatten a list
- Flow-control structures
- Floyd's triangle
- Floyd-Warshall algorithm
- Forest fire
- Fork
- Formatted numeric output
- Forward difference
- Four bit adder
- Fractal tree
- Fractran
- Function composition
- Function definition

### G

- Galton box animation
- Generate lower case ASCII alphabet
- Generator/Exponential
- Generic swap
- Get system command output
- Globally replace text in several files
- Go Fish
- Golden ratio/Convergence
- Gray code
- Greatest common divisor
- Greatest element of a list
- Greatest subsequential sum
- Greyscale bars/Display
- Guess the number
- Guess the number/With feedback
- Guess the number/With feedback (player)