Artifact 683a8d961c6525cd76cce9a573d8f9517c571041
- File
sample/pattern.pmy
- 2010-11-21 14:24:33 - part of checkin [3995a5eb6a] on branch trunk - added iikagen pattern match (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,11); print( xs ); print( length(xs) ); print( adjSum(xs) ); print( length(adjSum(xs)) );