GHCi内でこの関数(learnyouahaskellから取得)に相当するものを定義するにはどうすればよいですか?
import Data.List
numUniques :: (Eq a) => [a] -> Int
numUniques = length . nub
型宣言がないと、GHCiは関数定義を受け入れますが、役に立たない型になってしまいます。
Prelude Data.List> import Data.List
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int
結果の関数は、パラメーターとして単位のリストのみを受け入れます。
GHCiで型宣言を提供する方法はありますか?または、型宣言を必要としないこれらのような関数を定義する別の方法はありますか?
GHCiガイドに明らかな手がかりは見当たらず、次のような表現を試しました(役に立たなかった)。
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int