Artifact Content
Not logged in

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)) );