[解決済み] なぜHaskellでは整数の割り算ができないのか?
2022-02-04 01:05:30
質問
このコード
(4 :: Integer) / 2
はエラーになります。
No instance for (Fractional Integer) arising from a use of ‘/’
In the expression: (4 :: Integer) / 2
In an equation for ‘it’: it = (4 :: Integer) / 2
なぜ?
を指定する必要があります。
fromIntegral(4 :: Integer) / 2
を実行して結果を得ることができます。しかし、実数が必要な場合はどうでしょうか?
2.0
?
解決方法は?
なぜなら
Integer
タイプには
Fractional
のインスタンスを作成します。
の型は
(/)
は
Fractional a => a -> a -> a
. がどうなるかを考えてみましょう。
a = Integer
. あなたが持っているのは
Integer -> Integer -> Integer
. しかし
1/2
は
ではなく
が整数である場合、それは
0.5
. ということは、除算演算子を収めるには
ラウンド
となります。しかし、そこには
ない
丸め方は一通りで、用途によって最適な方法が異なるため、「丸める」ではなく「丸める」を採用することになりました。
ではなく
そのインスタンスを提供します。
を実行したい場合
整数分割
を使用します。
div
または
quot
関数を使用します(これらは異なる丸めを使用します)。
そうでなければ,次のような明確な除算をサポートするものに変換してください。
Rational
(これは
fromIntegral
が行っている)。
関連
-
[解決済み] Project Eulerとの速度比較。CとPythonとErlangとHaskellの比較
-
[解決済み] Haskellにおける "リフティング "とは?
-
[解決済み】Haskellの入門編
-
[解決済み] Haskellのマルチコアプログラミングはどうなっているのか?
-
[解決済み] CabalとStackの違いは何ですか?
-
[解決済み] リーダーモナドの目的は何ですか?
-
[解決済み] TLSサーバーを実装するためのHsOpenSSL APIの適切な使用法
-
[解決済み] HaskellとF#の主な違いは何ですか?[クローズド]
-
[解決済み] Haskellでグラフはどのように表現するのか?
-
[解決済み] Haskell型とデータコンストラクタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Haskellでの挿入ソート
-
[解決済み] 一般的に `{- |` で始まるHaskellのコメントは何を意味するのですか?
-
[解決済み] 機能における非網羅的なパターン【重複あり
-
[解決済み] haskellにおけるdrop関数 - リスト内包を用いた実装
-
[解決済み] モナドはエンドファンクタのカテゴリではただのモノイドですが、何か問題でも?
-
[解決済み] フリーモナドとは何ですか?
-
[解決済み] Haskellにはなぜ "data "と "newtype "があるのですか?重複] [重複] [重複
-
[解決済み] Haskellのリストを参照する際の「@」記号の意味は?
-
[解決済み] Haskellのマルチコアプログラミングはどうなっているのか?
-
[解決済み] Haskellの "Just "構文とは?