8 Batteries Not Included
Some programming language features which are not part of PLAN (but may be
included, given that user demand for them exists and that they can be added
without compromising safety requirements) are:
-
higher-order functions, mutation (i.e., assignment), type
declarations, recursive functions, forward function references
(i.e. the static scoping enforces a strict ``define before use''
policy), looping constructs
Some of these are approximated. For example, chunks serve as an
approximation for higher-order functions, OnRemote and/or eval may be used
to simulate recursion and forward function references, and the resident
service package provides more heaviweight, mutable data. In general, the
service level may be used to provide functionality not available at the
language level.