2016-07-12 29 views
8

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

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.

İlgili konular