Artifact 2c8664960dfdd96b77aba0ad9a6f097be10434ec
1 def fromTo(x, y)
2 {
3 if x > y : {}
4 else : {car: x, cdr: fromTo(x+1,y)}
5 };
6
7 def length(lst)
8 {
9 case lst
10 when {car:_, cdr:x}: length(x)+1
11 when _: 0
12 };
13
14 def adjSum(lst)
15 {
16 case lst
17 when {car:x, cdr:{car: y, cdr:z}} : {car: x+y, cdr: adjSum(z)}
18 when {car:x, cdr:{}}: {car: x, cdr: {}}
19 when {}: {}
20 };
21
22 var xs = fromTo(1,101);
23
24 print( xs );
25 print( length(xs) );
26 print( adjSum(xs) );
27 print( length(adjSum(xs)) );