[前][次][番号順一覧][スレッド一覧]

haskell-jp:516

From: Maehara Masahide <maehrm@g...>
Date: Sun, 31 Jan 2010 17:09:40 +0900 (JST)
Subject: [haskell-jp:516] Re: Real Wold Haskell 3章の練習問題

前原と申します。

On Sun, 31 Jan 2010 09:52:12 +0900,
Nonaka Akira <nonaka@m...> wrote:

> あいかわらずReal Wold Haskellを少しずつ読んでいます.3章の練習問題
> (P72)をやってみました.宜しければ識者の方の添削をお願いします.

添削ではなくて便乗質問です。。。すみません。

練習問題3を解くときに疑問に思ったことがありました。練習問題3は,「リス
トの平均値を計算する関数を書きなさい。」という問題です。fromIntegral関
数を使って…というヒントがあったので,以下のように作成してみました。

Prelude> let average xs = sum xs / fromIntegral (length xs)
Prelude> average [1,2,3,4]
2.5

正常に動作しているようですので,ここで終われば良かったのですが,

Prelude> 10 / 4
2.5

と実行すると,分母,分子とも整数でも計算できることが分かりましたので,
fromIntegralを除いて定義しても良いのでは思いました。しかし,以下のよう
にエラーが出力されます。

Prelude> let average xs = sum xs / (length xs)

<interactive>:1:17:
    No instance for (Fractional Int)
      arising from a use of `/' at <interactive>:1:17-36
    Possible fix: add an instance declaration for (Fractional Int)
    In the expression: sum xs / (length xs)
    In the definition of `average': average xs = sum xs / (length xs)

Haskellは,型をしっかり扱わなければならないので,上記のエラーが出たの
は納得出来るのですが,そうであれば,10 / 4 もエラーが出てくれると,す
べて納得出来るのにと思ってしまいます。
この件は,
        http://d.hatena.ne.jp/rahaema/20100114
に書き,もう忘れかけていたのですが,野中さんのメールを見て,便乗させて
いただきました。アドバイスがいただければ幸いです。

では。
--
宮崎県立都城工業高等学校(情報制御システム科)
前原 正英 <maehrm@g...>

[前][次][番号順一覧][スレッド一覧]

       515 2010-01-31 09:52 [nonaka@m...         ] Real Wold Haskell 3章の練習問題        
->     516 2010-01-31 17:09 ┣[maehrm@g...         ]                                       
       517 2010-01-31 19:07 ┃┗[nonowarn@g...       ] Re: [haskell-jp:516] Re: Real Wold Haskell 3章の練習問題
       520 2010-01-31 20:56 ┃ ┗[maehrm@g...         ] Re:  Real Wold Haskell 3章の練習問題
       521 2010-01-31 22:11 ┃  ┗[nonowarn@g...       ] Re: [haskell-jp:520] Re: Real Wold Haskell 3章の練習問題
       518 2010-01-31 19:24 ┣[nonowarn@g...       ] Re: [haskell-jp:515] Real Wold Haskell 3章の練習問題
   @   519 2010-01-31 19:35 ┃┗[nonaka@m...         ]                                     
       522 2010-02-01 09:16 ┗[ikegami.da@g...     ] Re: [haskell-jp:515] Real Wold Haskell 3章の練習問題
       523 2010-02-01 09:34  ┗[ikegami.da@g...     ]                                     
       524 2010-02-01 10:40   ┗[ikegami.da@g...     ]                                   
       525 2010-02-01 22:04    ┗[masahiro.sakai@g... ] Re: Real Wold Haskell 3章の練習問題
       526 2010-02-03 12:53     ┗[ikegami.da@g...     ] Re: [haskell-jp:525] Re: Real Wold Haskell 3章の練習問題