4 Different types of strings, separated by separators.
8 text e.g. "hello there"
12 In string of symbol characters, how do we divide it up.
13 Could used the longest defined match, but then the list of defined symbols
14 must be processed quite early.
15 Anything else will be very arbitrary though, so probably is best.
19 There is a simple, all encompassing, syntax which is probably a bit clumsy
20 (though not too clumsy).
21 It basically looks like object method invokations:
22 expr : expr ":" name expr
24 | name | text | number | integer
26 Should lists be in this simple syntax (for args to function), or should
28 list : create 27 : append 12 : append 1 : append hello
29 gives a list 27, 12, 1, hello
31 No, I think that the language need to "know" about lists more than this.
32 Then we need a distinct bracket for lists, so that we know the difference between
33 an expr and a list with one element.
37 There is a mechanism for defining various syntactic forms to improve the syntax.
39 "if" A:boolean "then" B:block "else" C:block "fi"
43 A:addable "+" B:addable
48 Haven't really thought though how local binding works, especially for loops.
49 Maybe a local name binds to a single object, possibly created for the purpose.
50 This needs to be some sort of meta-syntactic form....
51 If there is only one object, do we need/want to declare a type for the name.
52 Is it not obvious from creation?
55 A "type" is a set of objects having common behaviour.
56 A class is a means of creating new objects.
57 A "type" can "inherit from", or "be a subtype of" another type.
58 A class creates objects of a defined type.
60 An object has (optional) state and behaviour.
61 Each behavious is a "class" in that it creates (or produces, returns) objects.
62 A class takes arguements to tell which sort of object to create.
63 A "package" is an object without state that pre-exists in some sense, and contains
64 a lot of classes, which create objects, each with their own behaviour.
65 How does this relate to parameterised classes which have parameterised types?
66 This simply requires that the type of (returned by) a class is allowed to be a type-function of
67 the known types of the arguments, and that classes (functions,methods) can be passed as arguments.
72 Execution blocks, and bindings, and scope there of.