如何在 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