Artifact 3044d19024152b10898042989a7948b2f818828a
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)) );