Andrew: a distributed personal computing environment
Communications of the ACM - The MIT Press scientific computation series
Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
A very fast substring search algorithm
Communications of the ACM
Communications of the ACM
The ICON Programming Language
The SNOBOL 4 programming language
The SNOBOL 4 programming language
History of the Icon programming language
HOPL-II The second ACM SIGPLAN conference on History of programming languages
History of the Icon programming language
History of programming languages---II
Unified selection from lists, arrays, and objects
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Arrays of characters are a basic data type in many programming languages, but strings and substrings are seldom accorded first-class status as parameters and return values. Such status would enable a routine that calls a search function to readily access context on both sides of a return value. To enfranchise substrings, this paper describes a new data type for substrings as a special case of one for general subsequences. The key idea is that values are not sequences or references to positions in sequences, but rather references to subsequences. Primitive operations on the data type are constants, concatenation, and four new functions—base, start, next, and extent—which map subsequence references to subsequence references.This paper informally presents the data type, demonstrates its convenience for defining search functions, and shows how it can be concisely implemented. Examples are given in Ness, a language incorporating the new data type, which is implemented as part of the Andrew User Interface System.