diff options
| author | seh <henesy.dev@gmail.com> | 2019-03-18 17:08:49 -0500 |
|---|---|---|
| committer | seh <henesy.dev@gmail.com> | 2019-03-18 17:08:49 -0500 |
| commit | 87e325f2c9792ece2583761ca26c57318a698be9 (patch) | |
| tree | 38078b62d7432dcebb75c990d20d39f483c4e9cb /Lists/lists.b | |
| parent | 0283ccf588a5243b2a992d3d726c2f1344c5438a (diff) | |
Diffstat (limited to 'Lists/lists.b')
| -rw-r--r-- | Lists/lists.b | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/Lists/lists.b b/Lists/lists.b index 0837c8a..924c05e 100644 --- a/Lists/lists.b +++ b/Lists/lists.b @@ -3,19 +3,47 @@ implement Lists; include "sys.m"; include "draw.m"; -include "arg.m"; - sys: Sys; print: import sys; Lists: module { - init: fn(nil: ref Draw->Context, argv: list of string); + init: fn(nil: ref Draw->Context, nil: list of string); }; -init(nil: ref Draw->Context, argv: list of string) { +init(nil: ref Draw->Context, nil: list of string) { sys = load Sys Sys->PATH; - + names: list of string; + ages: list of int; + persons: list of (string, int); + + print("Lens: %d, %d, %d\n", len names, len ages, len persons); + + names = "Spike" :: names; + ages = 27 :: ages; + + names = "Ed" :: "Jet" :: names; + ages = 13 :: 36 :: ages; + + print("Lens: %d, %d, %d\n", len names, len ages, len persons); + + n := names; + a := ages; + + while(n != nil && a != nil) { + persons = (hd n, hd a) :: persons; + n = tl n; + a = tl a; + } + + print("Persons:\n"); + for(; persons != nil; persons = tl persons) { + (name, age) := hd persons; + print("%s: %d\n", name, age); + } + + print("Tmp lens: %d, %d\n", len n, len a); + print("Lens: %d, %d, %d\n", len names, len ages, len persons); exit; } |
