Belirli tipler için ghci'nin özel bir yerine yazdırma işlevini yerine getirmesini sağlamanın bir yolu var mı? Daha genel bir soru: Bir kütüphaneyi etkileşimli modda mümkün olduğunca kullanılabilir hale getirmek için genel yönergeler nelerdir? Teşekkürler.Ghci'de son derece yazdırma
8
A
cevap
7
--interactive-print
işaretini kullanarak özel bir güzel yazdırma işlevi ve herhangi bir kısıtlama için C
türüyle C a => a -> IO()
kapsamındaki herhangi bir işlevi adlandırma belirtebilirsiniz. (Detaylar için dokümanlar Section 2.4.9 bakın.) Bu, kendi typeclass kendi işlevini belirtebilirsiniz anlamına
ghci --interactive-print=MyModule.prettyPrint
. Orada sadece belirli bir türü için bunu yapmak için hiçbir yol, ama özel sınıf hep bu çalışması için en az OverlappingInstances
gerektirecektir
instance Show a => PrettyPrint a where prettyPrint = show
gibi bir geri dönüş örneğini içerebilir.