The Basic Types in Shen and KLambda
There are 12 basic types in Shen.
1. symbols .... abc hi-there, The_browncow_jumped_over_the_moon
2. strings ..... any characters enclosed in "s
3. numbers .... all objects closed under +, /, -, *
4. booleans ... true, false
5. streams
6. exceptions
7. vectors
8. functions
9. lists
10. tuples
11. closures
12. continuations
Note that the last two categories can merge depending on the platform.
Any symbol, string, number or boolean is an atom. Booleans are true and false. Atoms are self-evaluating.
As in Qi, booleans are not counted as symbols (in Shen they have their own type). All symbols apart from
those used to apply functions are treated as implicitly quoted.
The type system of Shen differs from Qi II in not placing variables and symbols into different types. This
arises mainly from dropping rule closures that appeared in Qi II. The type stream is now inbuilt since several
primitives use this concept. |