Nasıl "hata" printfs ile Haskell?
Bunun toplumdan gelen, Haskell biraz öğrenmeye çalışıyorum. Geçiş oldukça iyi gidiyor ama biraz hata ayıklama ile kafam karıştı. Koyardım (çok) "printf" bunun benim kod, Ara değerler, ya da bazı bayrak incelemek için hesaplama tam olarak başarısız oldu. yeri görmek
Printf olduğu içinIOeylem, içinde haskell kodumu kaldırın gerekiyorIOhata ayıklama bu tür edebilmek için monad ? Ya orada bunu yapmak için daha iyi bir yol (gerçekten Kaçınılması eğer bunu elle yapmak istemiyorum)
Ben de bulacaksınızizfonksiyon : http://www.haskell.org/haskellwiki/Debugging#Printf_and_friends hangi istediğim şey, ama bu tür anlamıyorum tam olarak görünüyor: yokturIOher yerde! Birisi açıklasın bana izleme fonksiyonu bir davranış olabilir mi ?
CEVAP
trace
hata ayıklama yöntemi kullanmak için en kolay. Aynen sizin de belirttiğiniz sebepten IO
. IO
monad kodunuzu kaldırmaya gerek yok. Böyle hayata
trace :: String -> a -> a
trace string expr = unsafePerformIO $ do
putTraceMsg string
return expr
Perde arkasında IO var ama unsafePerformIO
escape için kullanılır. 6 ** türü ve adı da bakarak tahmin edebilirsin olan potansiyel başvuru şeffaflık tatili bir işlevi var.
Nasıl çözüleceği "Hata: kötü Ende...
Nasıl başa "java.lang.OutOfMemory...
Nasıl " önlemek için;sıfır böl&; S...
nasıl çözmek ve ruby yükleme " eksik p...
Gidermek " Nasıl NodeJS -; bul modül&q...