Я пытаюсь понять, как преобразовать функции в точечную нотацию в Haskell. Я видел этот пример, но это сложнее, чем то, что я ищу. Я чувствую, что понимаю логику, но когда я пытаюсь выполнить некоторые простые примеры в коде, я получаю ошибки компиляции. Я хочу попытаться написать эту функцию в стиле point-free:
f x = 5 + 8/x
, который я изменил как f x = (+) 5 $ (/) 8 x
Итак, я подумал, что это может быть примерно так:
f = (+) 5 $ (/) 8
но когда я запускаю это в ghci, я получаю это сообщение:
No instance for (Num (a0 -> a0))
arising from the literal `5' at Test.hs:3:9
Possible fix: add an instance declaration for (Num (a0 -> a0))
In the first argument of `(+)', namely `5'
In the first argument of `($)', namely `(+) 5'
In the expression: (+) 5 $ (/) 8
Failed, modules loaded: none.
Я не понимаю сообщение "Нет экземпляра для...". Что мне нужно сделать, чтобы написать эту функцию в стиле point-free?