2007-10-28 match式 compact sumi javascript Ocamlあたりのmatch式のsumiバージョンです。 f:(a){ match(a){ case(qq{$a+$b}){qq{add}} case(new XOX(qq{$a},qq{$b},qq{$c})){qq{xox}} default{a} } } print(f(qq{1+2})+"\n") print(f(qq{1*2})+"\n") print(f(qq{abc})+"\n") で、 add xox abc abcという結果になります。 http://sakurai.s59.xrea.com/compact/compact/sumi.html?in=f%3A%28a%29%7B%0D%0A++match%28a%29%7B%0D%0A++case%28qq%7B%24a%2B%24b%7D%29%7Bqq%7Badd%7D%7D%0D%0A++case%28new+XOX%28qq%7B%24a%7D%2Cqq%7B%24b%7D%2Cqq%7B%24c%7D%29%29%7Bqq%7Bxox%7D%7D%0D%0A++default%7Ba%7D%0D%0A++%7D%0D%0A%7D%0D%0A%0D%0Aprint%28f%28qq%7B1%2B2%7D%29%2B%22%5Cn%22%29%0D%0Aprint%28f%28qq%7B1*2%7D%29%2B%22%5Cn%22%29%0D%0Aprint%28f%28qq%7Babc%7D%29%2B%22%5Cn%22%29%0D%0A