# CosmicOS version cosmic.0.2

(latest version always available at CosmicOS homepage)

This version of CosmicOS transitions to a more functional core, to
simplify notation. Using functional style also means we don't have to
deal with side-effects too early.
All the lessons are terser than they should be. Effort is being
devoted to getting a fairly comprehensive skeleton before
fleshing out the individual lessons as much as they might need to be.
The generated message consists of a sequence of 8 symbols.
Each symbol has a meaning with respect to a simple functional
programming language.
number symbol meaning
0 0 evaluates to the number zero
1 . function that adds one to its argument (on right)
2 : function that multiplies its argument (on right) by two
3 ( marks beginning of an expression - e.g. to replace argument
4 ) marks end of an expression
5 ? creates a one-parameter function; takes two arguments,
first is an identifier, second argument is value
of function (can be an expression that uses identifier)
6 ^ takes numeric argument (on right) and makes it an
identifier
7 ; end of statement

reasonably readable form of message

generator of message

final form of message

tarball of all files

Estimate of message entropy: **2.4 kB**.

## Index of lessons

(all lessons)
0 (MATH) introduce counting

1 (MATH) now show equality

2 (MATH) now show other comparisons

3 (MATH) introduce the NOT logical operator

4 (MATH) introduce the AND logical operator

5 (MATH) introduce the OR logical operator

6 (MATH) use equality for truth values

7 (MATH) introduce addition

8 (MATH) introduce subtraction

9 (MATH) introduce multiplication

10 (MATH) introduce doubling as a special case of multiplication

11 (MATH) introduce a simple form of binary notation

12 (MATH) demonstrate idea of leaving gaps in an expression

13 (MATH) show some simple function calls

14 (MATH) show mechanisms for branching

15 (MATH) show an example of recursive evaluation

16 (MATH) introduce universal quantifier

17 (MATH) introduce existential quantifier

18 (MATH) introduce logical implication

19 (MATH) introduce sets and set membership