Я пытаюсь понять, как преобразовать функции к бессмысленной нотации в 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.
Я не понимаю сообщения "No instance for...". Что мне нужно сделать, чтобы написать эту функцию в стиле point-free?