Artifact 2c8664960dfdd96b77aba0ad9a6f097be10434ec
- File
sample/pattern.pmy
- 2010-11-24 12:14:00 - part of checkin [3ae09b8cbf] on branch trunk - changed if-then-else syntax (user: kinaba) [annotate]
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)) );