@@ -9,15 +9,15 @@ It has been designed from concepts of Girard's transcendental syntax.
99
1010## Key characteristics
1111
12- - dynamically/statically ** typed ** but without primitive types nor type systems,
13- by using very flexible assert-like expressions defining * sets of tests * to pass;
14- - everything is based on ** term unification ** .
12+ - ** typable ** but without primitive types nor type systems
13+ - both computation and typing are based on basic ** term unification ** between
14+ blocks of terms .
1515
1616It is multi-paradigm:
17- - _ logic programs_ called "constellations" are the elementary bricks of
18- computation and typing ;
19- - _ functional programs_ correspond to logic programs enforcing an order of
20- interaction;
17+ - _ logic programs_ called "constellations" are the elementary blocks of
18+ programming ;
19+ - _ functional programs_ correspond to layered constellations enforcing an order
20+ of interaction;
2121- _ imperative programs_ are iterative recipes constructing constellations;
2222- _ objects_ are ways to structure constellations.
2323
@@ -36,52 +36,36 @@ philosophy).
3636Finite state machine
3737
3838```
39- (spec binary
40- (const
41- (star (-i e) ok)
42- (star (-i [0 X]) (+i X))
43- (star (-i [1 X]) (+i X))))
39+ (spec binary [
40+ [(-i e) ok]
41+ [(-i [0 X]) (+i X)]
42+ [(-i [1 X]) (+i X)]])
4443
4544'input words
4645(:: e binary)
47- (def e
48- (const (star (+i e))))
46+ (:= e (+i e))
4947
5048(:: 000 binary)
51- (def 000
52- (const (star (+i [0 0 0 e]))))
49+ (:= 000 (+i [0 0 0 e]))
5350
5451(:: 010 binary)
55- (def 010
56- (const (star (+i [0 1 0 e]))))
52+ (:= 010 (+i [0 1 0 e]))
5753
5854(:: 110 binary)
59- (def 110
60- (const (star (+i [1 1 0 e]))))
61-
62- (def a1
63- (galaxy
64- (initial
65- (const
66- (star (-i W) (+a W q0))))
67- (final
68- (const
69- (star (-a e q2) accept)))
70- (transitions
71- (const
72- (star (-a [0 W] q0) (+a W q0))
73- (star (-a [0 W] q0) (+a W q1))
74- (star (-a [1 W] q0) (+a W q0))
75- (star (-a [0 W] q1) (+a W q2))))))
76-
77- (show (kill (exec
78- (union @#e #a1))))
79- (show (kill (exec
80- (union @#000 #a1))))
81- (show (kill (exec
82- (union @#010 #a1))))
83- (show (kill (exec
84- (union @#110 #a1))))
55+ (:= 110 (+i [1 1 0 e]))
56+
57+ (:= a1 [
58+ [(-i W) (+a W q0)]
59+ [(-a e q2) accept]
60+ [(-a [0 W] q0) (+a W q0)]
61+ [(-a [0 W] q0) (+a W q1)]
62+ [(-a [1 W] q0) (+a W q0)]
63+ [(-a [0 W] q1) (+a W q2)]])
64+
65+ <show kill exec (union @#e #a1)>
66+ <show kill exec (union @#000 #a1)>
67+ <show kill exec (union @#010 #a1)>
68+ <show kill exec (union @#110 #a1)>
8569```
8670
8771More examples can be found in ` examples/ ` .
0 commit comments