Для упражнения на WriterMonads мне нужно создать функцию, которая регистрирует, что она делает Я не должен использовать конструктор кортежей (,).
У меня уже есть функция журнала с типом результата (String, ())
Теперь мне нужно использовать этот, но с типом результата (String, Int)
Но я не понимаю, как сделать (String, ()) кортеж для (String, Int)
logMsg :: String -> (String,())
logMsg msg = (msg,()) -- Durch Lösung ersetzen.
logOp :: Int -> Int -> Int -> String -> (String,())
logOp v1 v2 res math = do
logMsg "The value of "
logMsg $ show v1
logMsg math
logMsg $ show v2
logMsg " is "
logMsg $ show res
logMsg ".\n"
mult :: Int -> Int -> (String,Int)
mult m1 m2 = logOp m1 m2 (m1*m2) "*"
Я проверял это
logOp m1 m2 (m1*m2) "*"
делает правильный результат типа (String, ())
Понятия не имею, есть намеки?