def doSomething
(l
: MyList, i
: Int
):MyList
= { case Cons
(e,tail
) if e
> i
=> Cons
(e,doSomething
(tail,i
)) case Cons
(e,tail
) => doSomething
(tail,i
) }
}
def doIt
(l
: MyList, i
: Int
) : MyList
= { case (Cons
(e,t
),j
) => Cons
(e,doIt
(t,j-
1)) }
}
def main
(args
: Array
[String
]) { val l
= Cons
(13,Cons
(23,Cons
(17,Nil
()))) for( i
<-
1 to
5) println
(doIt
(l,i
)) }
}
def push
(n
: Int, l
: MyList
):MyList
= { Cons(n,l)
}
def tail
(l
: MyList
) : MyList
= { }
}
def pop
(l
: MyList
) : (Int,MyList
) = { case Nil
() => throw new IllegalArgumentException
("wrong parameter") }
}
}
b2JqZWN0IE1haW57CmRlZiBkb1NvbWV0aGluZyhsIDogTXlMaXN0LCBpIDogSW50KTpNeUxpc3QgPSB7CiAgICBsIG1hdGNoIHsKICAgICAgICBjYXNlIE5pbCgpID0+IE5pbCgpCiAgICAgICAgY2FzZSBDb25zKGUsdGFpbCkgaWYgZSA+IGkgPT4gQ29ucyhlLGRvU29tZXRoaW5nKHRhaWwsaSkpCiAgICAgICAgY2FzZSBDb25zKGUsdGFpbCkgICAgPT4gZG9Tb21ldGhpbmcodGFpbCxpKQogICAgfQp9CgpkZWYgZG9JdChsIDogTXlMaXN0LCBpIDogSW50KSA6IE15TGlzdCA9IHsKICAgIChsLGkpIG1hdGNoIHsKICAgICAgICBjYXNlIChOaWwoKSxfKSAgID0+IE5pbCgpCiAgICAgICAgY2FzZSAoXywwKSAgICAgICAgICAgPT4gTmlsKCkKICAgICAgICBjYXNlIChDb25zKGUsdCksaikgPT4gQ29ucyhlLGRvSXQodCxqLTEpKQogICAgfQp9CmRlZiBtYWluKGFyZ3M6IEFycmF5W1N0cmluZ10pIHsKdmFsIGwgPSBDb25zKDEzLENvbnMoMjMsQ29ucygxNyxOaWwoKSkpKQogICAgZm9yKCBpIDwtIDEgdG8gNSkgcHJpbnRsbihkb0l0KGwsaSkpCn0KfQphYnN0cmFjdCBjYXNlIGNsYXNzIE15TGlzdAoKY2FzZSBjbGFzcyBOaWwgZXh0ZW5kcyBNeUxpc3QKCmNhc2UgY2xhc3MgQ29ucyhjdXIgOiBJbnQgLCBmb2xsb3cgOiBNeUxpc3QpIGV4dGVuZHMgTXlMaXN0CgpvYmplY3QgTXlMaXN0IHsKICBkZWYgcHVzaChuIDogSW50LCBsIDogTXlMaXN0KTpNeUxpc3QgPSB7CiAgICBDb25zKG4sbCkKICB9CiAgZGVmIHRhaWwobCA6IE15TGlzdCkgOiBNeUxpc3QgPSB7CiAgICBsIG1hdGNoewogICAgICBjYXNlIE5pbCgpID0+IE5pbCgpCiAgICAgIGNhc2UgQ29ucyhjLGYpID0+IGYKICAgIH0KICB9CiAgICBkZWYgcG9wKGwgOiBNeUxpc3QpIDogKEludCxNeUxpc3QpID0gewogICAgICBsIG1hdGNoewogICAgICBjYXNlIE5pbCgpID0+IHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oIndyb25nIHBhcmFtZXRlciIpCiAgICAgIGNhc2UgQ29ucyhjLGYpID0+IChjLGYpCiAgICAgIH0KICAgIH0KfQ==
Cons(13,Nil())
Cons(13,Cons(23,Nil()))
Cons(13,Cons(23,Cons(17,Nil())))
Cons(13,Cons(23,Cons(17,Nil())))
Cons(13,Cons(23,Cons(17,Nil())))