[Top] | [Contents] | [Index] | [ ? ] |
Modern high-level programming languages provide multiple data types (such as numbers, strings, and lists), as well as first-class function values. Most utility languages (awk, perl, tcl) and most shells only have one (or a few) data types (strings), but they are very convenient for manipulating text or invoking programs. This paper discusses the issues involved in getting the best of both worlds, in the context of the Q programming language.
For example, executing a program has the same syntax as a function call, a pipe is function composition, and a disk file just a persistent string. Similarly, a disk file just a persistent string. These goals have implications for the syntax and the control structure of the programming language.