SORU
23 AĞUSTOS 2010, PAZARTESİ


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
23 AĞUSTOS 2010, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • steven johns

    steven johns

    11 Mart 2011
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007
  • WiseOwlTutorials

    WiseOwlTutor

    21 EKİM 2011