ハスケルの冒険は続きます。
現在、Haskellで自分のニーズに合った独自のFractionタイプを構築しようとしています。基本的にはFraction{n:: Int、d :: Int}型と多くの関数であり、それらのほとんどはx->Fraction型です。
だから私が今やりたいのは、他の可能性をそれらの1つに変換することによって、分数が分子でのみ正または負、分母で正になることを確認することです。
--e.g
(Fraction (3 (-5))->Fraction (-3) 5
--and
(Fraction (-3) (-5))->Fraction 3 5
ある関数x->Fractionがそれらの1つを返すたびに。すべてのx->Fraction関数を1つずつ変更するよりも、これを行うためのより賢い方法が必要だと思います。私の推測では、すでに分数タイプの定義にあります。
私はそれほど長い間プログラミングをしていないので、専門用語で完全に打ち負かすことができないかもしれません。
読んでくれてありがとう、そして答えたらありがとう
編集
Eq Instanceソリューションを使用することにし、Signum分子* Signum分母が一致しない場合は、falseをガードに返すことを追加しました。とにかくnumを分割するためにそれを作らなければなりませんでした。とデン。比較する前にHCDと
私が最初に要求したスマートコンストラクターは、同時に作成しているMatrix nXn(Q)モジュールでも使用されます:)
素晴らしい答え。ありがとう。