備忘録がてら調べてわかった事書いておきます
Pattern Synonyms は今回のようにライブラリの提供者が型のコンストラクタを提供してない、しかしパターンマッチは使いたいとかの場合に使える拡張のようです
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
を使うと
pattern ( マッチさせたい表現) <-
( その型から取り出したい値を取り出す関数)
-> ( 取り出した値にマッチさせるパターン) )
( where さらにコンストラクタシノニムとしても使いたい場合の逆変換関数 )
の形で使うようです
例えばInt型でxが偶数であった場合にdiv x 2をパターンマッチで拾うために
pattern TwiceOf x <-
( ( \t -> ( div t 2 , even t ) ) -> ( x, True ) )
のように定義しておいて
main = do
case 2 of { DoubleOf x -> print x; _ -> print "odd" }
case 3 of { DoubleOf x -> print x; _ -> print "odd" }
のように利用できるようです
TwiceOf はあくまでパターンマッチの表現のみで使える“仮の”コンストラクタですがpattern文にwhere句を
pattern DoubleOf x <-
( ( \t -> ( div t 2 , even t ) ) -> ( x, True ) )
where TwiceOf x = 2*x
のように追加するとあたかもInt型の新しいコンストラクタが追加されたように振る舞い“DoubleOf 2”のような表現が許されるようになるようです
今回の場合はどうすべきか悩みどころです
ライブラリの開発者が低レベルの(:%)を公開しない理由もわかるので無理クリ(:%)を使うのもどうなんつて気もするし、かと言ってまだHaskellの標準として認められてない、GHCでしか使えない拡張使うのもどうなんという気もするし
探検
関数型プログラミング言語Haskell Part33
レス数が900を超えています。1000を超えると表示できなくなるよ。
904デフォルトの名無しさん
2021/09/22(水) 20:18:48.06ID:02VLVXq+レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★3 [蚤の市★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★4 [蚤の市★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- JAが"政府の備蓄米買い上げ"見越して価格下げず!?「古いコメは食用向きでないなどと理由をつけ...」専門家解説 [煮卵★]
- 【テレビ】石破前首相 中国レーダー照射「フェーズ上がってる」と指摘も「日本の世論が激高するのは避ける必要が…」 [少考さん★]
- 高市総理によるセルフ経済制裁、国民の6割が評価 [523957489]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨 [931948549]
- 【悲報】山里亮太(南海キャンディーズ)さん [329329848]
- 【高市悲報】日本が🇨🇳輸出規制したフォトレジスト、早速韓国企業が中国に売り込みかけて日本の対抗手段もうなくなるwww [709039863]
- 統一教会っていらない田んぼ畑ビルディング(アスベスト)も引き取ってくれるの? [358382861]
- 中国父「日本の一般大衆は高市を支持しておらず、反対している人も多い。悪いのは日本国民ではなく高市!」 すまんこれほんと? [271912485]
