Сейчас я пытаюсь написать небольшой экземпляр Show для примитивных арифметических функций.
Цель состоит в том, чтобы сделать отображаемым список функций.
Очень простая функция show выглядит так:
showOp :: (Int -> Int -> Int) -> String
showOp op
| op 3 3 == 6 = "plus"
| op 3 3 == 0 = "minus"
| op 3 3 == 9 = "times"
| op 3 3 == 1 = "divide"
| otherwise = "undefined"
Но я не могу получить экземпляр Show for (Int -> Int -> Int). Я пробовал так:
instance Show (Int -> Int -> Int) where
show op = show "asdf"
Но не работает. WinHugs просто возвращает ошибку
Syntax error in instance head (variable expected)
. Можно ли вообще определить Show для функций? Если это так, как я могу решить эту проблему?