Mercurial > repos > tabletprog
annotate samples/slist.tp @ 220:a1a80af71b05
Implement onePlus macro. Fix some bugs in the other matching macros. Implement integer literal parsing rules.
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 23 Dec 2013 14:44:31 -0800 |
parents | 18598163e3ef |
children |
rev | line source |
---|---|
170
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
1 #{ |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
2 sum <- :l { |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
3 l fold: 0 with: :acc el { |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
4 acc + el |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
5 } |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
6 } |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
7 main <- { |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
8 print: (string: (sum: [])) . "\n" |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
9 print: (string: (sum: [1 2 3 4])) . "\n" |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
10 print: (string: (sum: 1 | 2 | 3 | 4 | [])) . "\n" |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
11 print: (string: (sum: [1 2] . [3 4])) . "\n" |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
12 } |
18598163e3ef
Add linked list implementation and cons operator
Mike Pavone <pavone@retrodev.com>
parents:
diff
changeset
|
13 } |