Wie werden explizite Typdeklarationen für Funktionen bei Verwendung von GHCi bereitgestellt?
Wie definiere ich das Äquivalent dieser Funktion (entnommen aus learnyouahaskell) in GHCi?
import Data.List
numUniques :: (Eq a) => [a] -> Int
numUniques = length . nub
Ohne die Typdeklaration akzeptiert GHCi die Funktionsdefinition, hat jedoch einen nicht hilfreichen Typ:
Prelude Data.List> import Data.List
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int
Die resultierende Funktion akzeptiert nur eine Liste von Einheiten als Parameter.
Gibt es eine Möglichkeit, Typdeklarationen in GHCi bereitzustellen? Oder gibt es eine andere Möglichkeit, solche Funktionen zu definieren, für die keine Typdeklarationen erforderlich sind?
Ich habe im GHCi-Handbuch keine offensichtlichen Hinweise gesehen und mit Ausdrücken wie den folgenden experimentiert (ohne Erfolg):
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int