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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Perihelion

    Perihelion

    23 NİSAN 2008
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011