Як визначити еквівалент цієї функції (взятої з Learnyouahaskell ) всередині GHCi?
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