Haskell で関数をポイントフリー表記に変換する方法を理解しようとしています。この例を見ましたが、探しているものよりも複雑です。その背後にあるロジックを理解しているように感じますが、コードでいくつかの簡単な例を実行しようとすると、コンパイル エラーが発生します。この関数をポイントフリー スタイルで書きたいと思います。
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.
「... のインスタンスがありません」というメッセージがわかりません。この関数をポイントフリー スタイルで記述するにはどうすればよいですか?