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

  • apenney888

    apenney888

    27 EKİM 2010
  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • Sergio Fernandez

    Sergio Ferna

    1 EKİM 2009