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 main
(args
: Array
[String
]) { doSomething(Cons(1,Cons(2,Nil())),1)
}
}
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+IGkgPT4gQ29ucyhlLGRvU29tZXRoaW5nKHRhaWwsaSkpCiAgICAgICAgY2FzZSBDb25zKGUsdGFpbCkgICAgPT4gZG9Tb21ldGhpbmcodGFpbCxpKQogICAgfQp9CgpkZWYgbWFpbihhcmdzOiBBcnJheVtTdHJpbmddKSB7CiBkb1NvbWV0aGluZyhDb25zKDEsQ29ucygyLE5pbCgpKSksMSkKfQp9CmFic3RyYWN0IGNhc2UgY2xhc3MgTXlMaXN0CgpjYXNlIGNsYXNzIE5pbCBleHRlbmRzIE15TGlzdAoKY2FzZSBjbGFzcyBDb25zKGN1ciA6IEludCAsIGZvbGxvdyA6IE15TGlzdCkgZXh0ZW5kcyBNeUxpc3QKCm9iamVjdCBNeUxpc3QgewogIGRlZiBwdXNoKG4gOiBJbnQsIGwgOiBNeUxpc3QpOk15TGlzdCA9IHsKICAgIENvbnMobixsKQogIH0KICBkZWYgdGFpbChsIDogTXlMaXN0KSA6IE15TGlzdCA9IHsKICAgIGwgbWF0Y2h7CiAgICAgIGNhc2UgTmlsKCkgPT4gTmlsKCkKICAgICAgY2FzZSBDb25zKGMsZikgPT4gZgogICAgfQogIH0KICAgIGRlZiBwb3AobCA6IE15TGlzdCkgOiAoSW50LE15TGlzdCkgPSB7CiAgICAgIGwgbWF0Y2h7CiAgICAgIGNhc2UgTmlsKCkgPT4gdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigid3JvbmcgcGFyYW1ldGVyIikKICAgICAgY2FzZSBDb25zKGMsZikgPT4gKGMsZikKICAgICAgfQogICAgfQp9