Не удалось найти ожидаемый тип - Haskell - PullRequest
0 голосов
/ 04 октября 2011

Я новичок в Haskell и до сих пор не могу понять эти проблемы типа.Я получаю ошибки для следующей функции:

computeTriUp :: Point -> Float -> [Point]
computeTriUp center r = [(x + r*cos(pi/2.0), y+r*sin(pi/2.0)), (x+r*cos(5.0*pi/4.0),       y+r*sin(5.0*pi/4.0)), (x+r*cos(7.0*pi/4.0), y+r*sin(7.0*pi/4.0))]
    where x = fst center
          y = snd center

Моя ошибка:

Couldn't match expected type `Int' with actual type `Float'
In the first argument of `(*)', namely `r'
In the second argument of `(+)', namely `r * cos (pi / 2.0)'
In the expression: x + r * cos (pi / 2.0)

Есть идеи?Спасибо!

1 Ответ

2 голосов
/ 04 октября 2011

Предполагая, что Point - это пара Ints, вы, вероятно, захотите изменить определения x и y, чтобы преобразовать их в Floats ...

x = fromIntegral $ fst centre
...