KRC is a simple lazy functional language designed and implemented by David Turner around 1979-81. It was a "miniaturised" version of SASL (St Andrews Static Language), used for teaching functional programming at the University of Kent and Oxford University in the early 1980's.
The software has been brought back to life by translating the original BCPL sources to C and adapted to run under Unix. (Warning: it doesn't work with gcc 4.9, you need an earlier gcc, or another C compiler such as clang or tcc.)
Download sources of Unix KRC, this is free software, see "COPYING" for license.
The Unix manual page krc.1
The KRC prelude of standard definitions, this is a new prelude written for the Unix version.
See also the 1981 prelude. Comments have been added to explain definitions which might otherwise be obscure. Reference (1) below as originally published included this, or most of it, as Appendix.
Send bug reports and, if known, bug fixes to
This paper contains an overview of KRC (starting on page 6) with examples including the first published account of the list-of-successes method for avoiding backtracking, here applied to the eight queens problem.
The paper tackles a programming problem in KRC: enumerating paraffin molecules. It is somewhat misnamed - I was given this title by the program committee when they invited me to give a talk and I omitted to change it. A more appropriate title for the paper would have been Programming with Set Abstraction.