Nasıl GHCi kullanırken işlevler için açık tür bildirimleri sağlamak için?
Nasıl ben bu işlevi eşdeğer tanımlamak için (learnyouahaskell alınan) içinde GHCi?
import Data.List
numUniques :: (Eq a) => [a] -> Int
numUniques = length . nub
Tip bildirimi olmadan, GHCi fonksiyon tanımını kabul eder, ama hiçbir işe yaramayan bir tür ile sona erer
Prelude Data.List> import Data.List
Prelude Data.List> let numUniques' = length . nub
Prelude Data.List> :t numUniques'
numUniques' :: [()] -> Int
Elde edilen fonksiyonu sadece bir parametre olarak birimler listesini kabul eder.
Bir şekilde orada GHCi yazın tanımlamalar sağlamak. Yoksa tür bildirimleri gerektirmeyen bu gibi fonksiyonları tanımlamak için başka bir yol var mı?
GHCi Kılavuzu'nda belirgin bir ipucu gördüm, ve aşağıdaki gibi ifadeler ile (boşuna) tecrübe:
> let numUniques' = ((length . nub) :: (Eq a) => [a] -> Int)
> :t numUniques'
numUniques' :: [()] -> Int
CEVAP
Bir şekilde orada GHCi yazın tanımlamalar sağlamak.
let numUniques' :: (Eq a) => [a] -> Int; numUniques' = length . nub
Yoksa tür bildirimleri gerektirmeyen bu gibi fonksiyonları tanımlamak için başka bir yol var mı?
Kapalı -XNoMonomorphismRestriction
ile monomorphism kısıtlama açarsanız sağ türünü anlaması olacaktır.
Nasıl bir bağlantı noktası Windows ser...
Nasıl ASP.NET Web API sağlamak için...
Nasıl run " kullanıcı adı ve parola sa...
Nasıl SUDO Kullanırken Ortam Değişkenl...
Nasıl küresel RSpec ' - renkli�...