def fromTo(x, y)
{
  if( x > y ) { {} }
  else        { {car: x, cdr: fromTo(x+1,y)} }
};

def length(lst)
{
  case( lst )
    when( {car:_, cdr:x} ) { length(x)+1 }
    when( _ ) { 0 }
};

def adjSum(lst)
{
  case( lst )
    when( {car:x, cdr:{car: y, cdr:z}} ) { {car: x+y, cdr: adjSum(z)} }
    when( {car:x, cdr:{}} ) { {car: x, cdr: {}} }
    when( {} ) { {} }
};

var xs = fromTo(1,11);

print( xs );
print( length(xs) );
print( adjSum(xs) );
print( length(adjSum(xs)) );
