File Annotation
Not logged in
3995a5eb6a 2010-11-21        kinaba: def fromTo(x, y)
3995a5eb6a 2010-11-21        kinaba: {
3995a5eb6a 2010-11-21        kinaba:   if( x > y ) { {} }
3995a5eb6a 2010-11-21        kinaba:   else        { {car: x, cdr: fromTo(x+1,y)} }
3995a5eb6a 2010-11-21        kinaba: };
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: def length(lst)
3995a5eb6a 2010-11-21        kinaba: {
3995a5eb6a 2010-11-21        kinaba:   case( lst )
3995a5eb6a 2010-11-21        kinaba:     when( {car:_, cdr:x} ) { length(x)+1 }
3995a5eb6a 2010-11-21        kinaba:     when( _ ) { 0 }
3995a5eb6a 2010-11-21        kinaba: };
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: def adjSum(lst)
3995a5eb6a 2010-11-21        kinaba: {
3995a5eb6a 2010-11-21        kinaba:   case( lst )
3995a5eb6a 2010-11-21        kinaba:     when( {car:x, cdr:{car: y, cdr:z}} ) { {car: x+y, cdr: adjSum(z)} }
3995a5eb6a 2010-11-21        kinaba:     when( {car:x, cdr:{}} ) { {car: x, cdr: {}} }
3995a5eb6a 2010-11-21        kinaba:     when( {} ) { {} }
3995a5eb6a 2010-11-21        kinaba: };
3995a5eb6a 2010-11-21        kinaba: 
f86026acb8 2010-11-21        kinaba: var xs = fromTo(1,101);
3995a5eb6a 2010-11-21        kinaba: 
3995a5eb6a 2010-11-21        kinaba: print( xs );
3995a5eb6a 2010-11-21        kinaba: print( length(xs) );
3995a5eb6a 2010-11-21        kinaba: print( adjSum(xs) );
3995a5eb6a 2010-11-21        kinaba: print( length(adjSum(xs)) );