मैं 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 गाइड में कोई स्पष्ट सुराग नहीं देखा, और निम्न (कोई फायदा नहीं हुआ) जैसे भावों के साथ प्रयोग किया:
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int