Bir sorum var: Dize veya Char için show yöntemini nasıl geçersiz kılabilirim? Teşekkürler. insanlar benim yorumunu gibi görünüyor yanaHaskell'de String/Char için show yöntemini geçersiz kıl
cevap
yazdıracaktır Bunu yapmak istiyorsan, yanlış yapıyorsun.
Daha teknik bir neden için, önceki bir soruya bakın, my answer.
Sen gerçekten (muhtemelen kendi tip sınıf aracılığıyla) kendi a -> String
fonksiyonları kullanarak veya daha detaylı çıkışları için oldukça-baskı kitaplığı (bunlardan bazıları zaten bir dahili Pretty
sınıf var) kullanmak gerekir.
, işte burada bir cevap gibidir:
varolan türlerinde tip sınıfları reimplement istiyorsanız
, birnewtype
-declared tipinde dolayabilirsiniz. Bu, kendi uygulamalarınızı, çalışma zamanında herhangi bir gerçek ek yük olmadan tanımlamanıza olanak tanır (çünkü
newtype
orijinal türüne izomorftur, çalışma zamanında gerçek bir boks işlemi yapılmaz).
Bu şuna benzer olabilir:
newtype MyChar = MyChar Char
instance Show MyChar where
show (MyChar c) = "head \"" ++ c : "\""
Bu kullanabilirsiniz Char
s sararak MyChar
ile, şöyle:
print $ fmap MyChar "test"
Bu
[head "t",head "e",head "s",head "t"]
Ayrıca, showList'i tanımlayabilirsiniz, daha sonra MyChar'ın listeleri de özel biçimlendirmeye sahip olacaktır. Aslında bu, karakter listelerinin ([Char]) gösterilmesinin, diğer listeleri ([a]) göstermekten farklı davranmasının nedeni budur. – sdcvvc
- 1. Django'yu geçersiz kıl veya Get
- 2. MFMailComposeViewController için UIAppearance özelliğini geçersiz kıl Önizleme
- 3. C# Çalışma Zamanı Modunda Geçersiz Kıl Yöntemi
- 4. Websphere üzerinde LTPA belirteci geçersiz kıl
- 5. Ebeveyn CSS Kuralını geçersiz kıl 'taşma: gizli'
- 6. Android Geri Düğmesini Geçersiz Kıl Düğmesi
- 7. Bir pytest parametreleştirilmiş fonksiyonlar ismini geçersiz kıl
- 8. Varsayılan jQuery seçici kapsamını geçersiz kıl
- 9. Modal form MVC/C genişliğini geçersiz kıl #
- 10. Kafa karıştırıcı "özel bir yöntemi geçersiz kıl"
- 11. Üst üste binen yöntemi geçersiz kıl
- 12. Ebeveyn div's z dizinini geçersiz kıl?
- 13. Python bdist için varsayılan yükleme dizinini geçersiz kıl Windows Installer
- 14. Android'i geçersiz kıl: hata ayıklaması için vmSafeMode özniteliği
- 15. Angularjs Geçersiz kılma ng-show on: hover
- 16. Omurgada getirme yöntemini geçersiz kılma
- 17. reCaptcha show "giriş hatası: geçersiz başvuru"
- 18. jwt_response_payload_handler yöntemini nerede geçersiz kılabilirim?
- 19. Bağımsız bir Perl komut dosyasını test ederken değişkenleri geçersiz kıl
- 20. Ayarlar menüsünü geçersiz kıl veya devre dışı bırak
- 21. Google Chrome - Yeni sekmeleri yüklerken Beyaz Boş Sayfayı geçersiz kıl
- 22. UILabel setText değerini geçersiz kıl: Swift içinde yöntem
- 23. Wcf İstemci maksimum bağlantılarını geçersiz kıl, istemci tarafı daraltmayı önle
- 24. Özel Denetim Geçersiz Kıl Metin Özellik Varsayılan Değer
- 25. Kullanıcı denetimi öğesinde geçersiz kıl özelliği neden tasarım zamanında gösterilmiyor
- 26. Bir JavaScript Etkinliğinde e.target'i Değiştir/Geçersiz Kıl/Üzerine Yaz
- 27. Django allauth kaydını geçersiz kıl "next" yönlendirme URL'si
- 28. WiX önyükleyicide MSI paket günlüğü düzeyini geçersiz kıl
- 29. Mvc'de bir Action yöntemini nasıl geçersiz kılarsınız?
- 30. grails yeniden yönlendirme denetleyicisi yöntemini geçersiz kılma
Sadece "Char -> String" veya "String -> String" türlerinin diğer işlevlerini tanımlamak istememenizin bir nedeni var mı? Neden şovu geçersiz kılmak istiyorsunuz? – hammar
Sanırım bir [yeni tip] (http://www.haskell.org/haskellwiki/Newtype) içine sarmanız ve bu tür için Show'u tanımlamanız gerekiyor. –