Concurrent Clean : タプル
多値関数([id:lethevert:20060210:p1])に関連して、ここで([id:lethevert:20060208:p1])$演算子を定義したが、これは、タプルに拡張できる。
($) infixr 0 //:: (a -> z) a -> z ($) f a :== f a ($$) infixr 0 //:: (a b -> z) (a,b) -> z ($$) f (a, b) :== f a b ($$$) infixr 0 //:: (a b c -> z) (a,b,c) -> z ($$$) f (a, b, c) :== f a b c ($$$$) infixr 0 //:: (a b c d -> z) (a,b,c,d) -> z ($$$$) f (a, b, c, d) :== f a b c d ($$$$$) infixr 0 //:: (a b c d e -> z) (a,b,c,d,e) -> z ($$$$$) f (a, b, c, d, e) :== f a b c d e
本当は、$, $$, $3, $4, $5としたかったが、Cleanのシンボル規則では無理なようだ。