如何在GHCi中定義此功能的等價物(取自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
完美 - 謝謝! – mattbh 2010-06-22 13:55:33
我還沒有與單形態,但通常這個答案指出我用分號將GHCI中的定義分組在一起 - 教程是寫在一個.hs文件,這在GHCi中嘗試時會給出許多不同的問題(函數缺乏綁定等等。)。 – 2014-10-27 14:14:50