Я новичок в Хаскеле и функциональном программировании в целом. В настоящее время я изучаю пользовательские типы данных и имею следующее:
data Point = Pt Double Double deriving (Show, Eq)
getValue :: Point -> Double
getValue (Pt a _) = a
Я пытаюсь вернуть только одно из двойных значений из пользовательского типа данных, но столкнулся с проблемой. Моя консоль выдает мне следующую ошибку всякий раз, когда я пытаюсь извлечь одно из моих значений точек: « Не удалось найти ожидаемый тип Integer -> Integer -> t
». Любые идеи относительно того, что я делаю неправильно?
( редактировать из комментариев ОП: ) Я набрал следующее в GHCi
test Pt 1.0 1.0
Вотполное сообщение об ошибке:
• Couldn't match expected type ‘Integer -> Integer -> t’
with actual type ‘Double’
• The function ‘test’ is applied to three arguments,
but its type ‘Point -> Double’ has only one
In the expression:
test Pt 1 1
In an equation for ‘it’:
it = test Pt 1 1
• Relevant bindings include
it :: t (bound at <interactive>:497:1)
test
- это то, что я переименовал getValue
в.