[過去ログ]
関数型プログラミング言語Haskell Part33 (1002レス)
関数型プログラミング言語Haskell Part33 http://mevius.5ch.net/test/read.cgi/tech/1581326256/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
466: デフォルトの名無しさん [sage] 2020/09/05(土) 02:01:31.05 ID:hzZ7uEzq >>458 です 自己レスです 色々調べて一応Complex RationalにNumのinstance入れる方法見つけました しかしかなり裏技というか、あまり関心しない方法かもしれません やはり正攻法は>>460のようにカプセル化する方だと思いますけど、せっかく見つけたのでうpします >>460と同じく0,3,4i,7/2+7/2iが同一円周上にあるか確認するプログラムです ついでにabsも使えるようにしてあります absがいらないならsqrt=の部分がなくても動作します http://mevius.5ch.net/test/read.cgi/tech/1581326256/466
467: デフォルトの名無しさん [sage] 2020/09/05(土) 02:03:13.00 ID:hzZ7uEzq import Data.Ratio import Data.Complex instance (Integral a)=> Floating (Ratio a) where sqrt = fromRational.toRational.sqrt .fromRational.toRational instance (Integral a) => RealFloat (Ratio a) where floatDigits = floatDigits.fromRational.toRational decodeFloat = decodeFloat.fromRational.toRational scaleFloat k x = if k > 0 then x*2^k else x/2^(-k) http://mevius.5ch.net/test/read.cgi/tech/1581326256/467
468: デフォルトの名無しさん [sage] 2020/09/05(土) 02:03:23.39 ID:hzZ7uEzq i = 0:+1%1 onCircle a b c d = id $ (==0) $ imagPart $ ((a-c)/(b-c))/((a-d)/(b-d)) (a,b,c,d)=(0,3,4*i,7/2+7/2*i) main = do print $(1/2+3/4*i)/(5/6+7/8*i) print $ onCircle a b c d print $ ((a-c)/(b-c))/((a-d)/(b-d)) print $ abs $ 2+3*i print $ abs $ 15+8*i ---- 618 % 841 :+ 108 % 841 True 4 % 7 :+ 0 % 1 8118979690322419 % 2251799813685248 :+ 0 % 1 17 % 1 :+ 0 % 1 http://mevius.5ch.net/test/read.cgi/tech/1581326256/468
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.036s