Вот мой код:Смешение типов в GHCI
n = [(a,b) | a <- [1..5],b <- [1..5]]
calcBmis xs = [bmi | (w, h) <- xs,let bmi = w/h^2]
При попытке применить calcBmis
к n
, я получаю следующее сообщение об ошибке:
*Charana> calcBmis n
<interactive>:220:1:
No instance for (Fractional Integer)
arising from a use of ‘calcBmis’
In the expression: calcBmis n
In an equation for ‘it’: it = calcBmis n
Дальнейшие исследования в GHCI:
*Charana> :t calcBmis
calcBmis :: Fractional t => [(t, t)] -> [t]
*Charana> :t n
n :: [(Integer, Integer)]
Что я предполагаю, так это то, что список, который я производю, имеет тип (Integer,Integer)
, но не может быть обработан в calcBmis
, который принимает только Fractional
. Любая идея, как решить эту проблему?
красивый, спасибо – Charana