詳しい方教えてください。
引数の値を、複数の関数(Char -> Bool) に適用して or をとることを考えています。
最初にシンプルに考えて以下のようになりました。
これをポイントフリー化しようと以下のように変更し
ここまでは良かったのですが、最後に引数を消すことを考え
このようにしたところ、これは期待している型と違ってしまいます。
うまく説明できているかわかりませんが、上記のような場合
ポイントフリーな書き方は可能でしょうか ?
引数の値を、複数の関数(Char -> Bool) に適用して or をとることを考えています。
最初にシンプルに考えて以下のようになりました。
import Data.Char f x = or $ map ($ x) [isDigit, isLetter] ghci> f '1' True
これをポイントフリー化しようと以下のように変更し
f x = or . flip map [isDigit, isLetter] $ ($ x) ghci> f '1' True
ここまでは良かったのですが、最後に引数を消すことを考え
f = or . flip map [isDigit, isLetter] . ($) ghci> :t f f :: ((Char -> Bool) -> Bool) -> Bool
このようにしたところ、これは期待している型と違ってしまいます。
うまく説明できているかわかりませんが、上記のような場合
ポイントフリーな書き方は可能でしょうか ?