Haskell'i seviyorum, ama Num sınıfından memnun değilim. Bu yüzden, cebirsel türler için kendi sınıfım hiyerarşik yapmak istiyorum.
Sorun, Prelude saklanan Num ve onunla ilişkili her şeyi almama rağmen, literal 1'i t türünde yapmak için tek yol hala t örneğini Num yapmaktır.
buIşkert'te Hashell'den Geçersiz
import Prelude hiding (everything having to do with Num)
import qualified Prelude (everything having to do with Num)
class (Eq fi) => FromInteger fi where
fromInteger :: Integral -> fi
foo :: (FromInteger fi) => fi -> String
foo 1 = "that was a one"
foo 0 = "that was a zero"
foo n = "that was neither zero nor one"
gibi ben kendi fromInteger sınıfını yapmak ve tamamen resmin dışında Num bırakmak isterdim , sonra yepyeni türleri için uygun fromInteger uygulayacağını ve asla Num hakkında bir şey söylemek zorundayım.
Ayrıştırıcıya farklı bir fromInteger yöntemi kullanmanın bir yolu var mı?
Teşekkürler!
Harika, bu harika! –
@JosephVictor [Sayısal Prelüd] (http://www.haskell.org/haskellwiki/Numeric_Prelude) 'a da bakın. Ne istersen onu bulabilirsin. – dave4420
Bu daha da havalı (temel olarak tam olarak yazdığım şey!) –