data MoneyAmount = Amount Float Currency
deriving (Show, Eq)
data Currency = EUR | GBP | USD | CHF
deriving (Show, Eq)
type Account = (Integer, MoneyAmount)
putAmount :: MoneyAmount -> Account -> Account
putAmount mon acc = undefined
Мне нужно написать функцию, которая добавляет деньги в учетную запись (ошибка отображения, если деньги добавлены, неверная валюта на счете).Путаница о «типе» и «данных» в haskell
Я знаю, как создать Сумму
let moni = Amount 6.6 EUR
, но я понятия не имею, что написать, чтобы создать учетную запись? (я надеюсь, что это предложение имеет смысл) Я не знаю, как манипулировать вводом, чтобы сделать все, что нужно добавить в аккаунт.
Я пытался что-то вроде
let acc = Account 1 moni
Мой вопрос больше, как манипулировать счет, так что я могу написать функцию.
aw сладкий, спасибо. Как я буду использовать acc в функции? Я предполагаю, что просто делать acc + money (let money = Amount 5 EUR) не получится. – srysry
Не совсем, но вы можете сделать 'let (accountNo, amount) = acc' или вообще не писать' acc' и написать 'putAmount mon (accountNo, amount)' или что-то еще. –