おそらくこれを行う方法はありませんが、念のため質問したかっただけです。
次のような単純なタプルのデータ型があります。
data Tup a = T a a
次のようなパターンシノニムがあります。
pattern (:?) :: () => Floating a => a -> a -> Tup a
pattern (x :? y) <- T x (sqrt->y)
これは に一致しT x y
ますが、y の平方根が得られます。それで:
let (_ :? y) = T 1 4 in y
は
2.0
コンストラクターとしても使用できるよう:?
にしたいので、次のようなクールなことを行うことができます。
1 :? 2
に評価する
T 1.0 4.0
もちろん、同形を手動で指定する必要がありますが、この動作を可能にする構文または言語機能はありますか?