Artifact Content
Not logged in

Artifact 2c8664960dfdd96b77aba0ad9a6f097be10434ec


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

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