Artifact Content
Not logged in

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