Icon


Ralph Griswold, 1970's


A descendant of SNOBOL4 with Pascal-like syntax. Icon is a general-purpose dynamically typed language with special features for string scanning. The central theme of Icon is the generator: When an expression is evaluated it may be suspended and later resumed, producing a result sequence of values until it fails. Resumption takes place implicitly in two contexts: iteration which is syntactically loop-like ('every-do'), and goal-directed evaluation in which a conditional expression automatically attempts to produce at least one result. Expressions that fail are used in lieu of Booleans. Data backtracking is supported by a reversible assignment. Icon also has co-expressions, which can be explicitly resumed at any time.

The Icon Programming Language, Ralph & Marge Griswold, Prentice-Hall, 1990.