-
Notifications
You must be signed in to change notification settings - Fork 6
/
ISSUES
57 lines (36 loc) · 2.02 KB
/
ISSUES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
GROWABLE LANGUAGE
Wybe should be designed to grow. This means to the extent possible,
things users implement and put into libraries should be
indistinguishable from primitive language features. See Guy Steele's
great OOPSLA 1998 keynote talk:
https://www.youtube.com/watch?v=_ahvzDzKdB0#t=3169
GENERATORS
for in(?x, lst) ===> init_seq(lst, ?gen) ... in(?x, !gen)
for in(?x, tree) ===> init_seq(tree, ?gen) ... in(?x, !gen)
for in(?x, range(1,10)) ===> init_seq(range(1,10), ?gen) ... in(?x, !gen)
summary: for gen(e1,...en) turns to initialisation init$gen(i1,...im,gen)
where i1,...im are all the INPUT arguments in e1,...en, plus a loop
statement gen(o1,...oq,gen,?gen) where o1,...oq are the OUTPUTS in e1,...en.
SYNTAX
How to handle goal and clause separators/terminators. Don't like offside
rule like Haskell and Python. Don't like 'end' for every construct with
multiple children like ruby. Don't like braces like C family.
Want to allow juxtaposition of predicate/function and arguments to denote
application like Haskell. Want to allow arguments to be separate or tupled
(this makes parentheses around arguments optional). But if parentheses are
just for grouping, as is conventional, then can't use parentheses for making
tuples, or singleton tuple is the same as its content.
Want to allow syntax to be extended by adding grammar rules, but this makes
it difficult to specify precedence because existing rules need to be changed
if you want to introduce a precedence level between current ones.
*** Solution: generalisation of Prolog's op declarations. Specify op
precedence, (possibly multiple) tokens, number and positions of arguments,
and their precedence.
SEMANTICS
Sometimes disjunctions generate all alternatives, once each, in the desired
order, and this is useful for loops. But in general you can't count on
nondeterminism behaving that way.
TYPES
Want type declarations to be optional. Thought we would make current class
the default type, so omitted variable types refer to the current class.
Can't do both.