SORU
28 ŞUBAT 2010, Pazar


Clojure hata ayıklama?

Çoğaltma kullanırken en iyi Clojure kod hata Ayıklama için yollar nelerdir?

CEVAP
28 ŞUBAT 2010, Pazar


Seçtiğiniz fonksiyonların giriş ve çıkışları bakmaya olanak da dotrace var.

(use 'clojure.contrib.trace)
(defn fib[n] (if (< n 2) n (  (fib (- n 1)) (fib (- n 2)))))
(dotrace [fib] (fib 3))

ürettiği çıktı:

TRACE t4425: (fib 3)
TRACE t4426: |    (fib 2)
TRACE t4427: |    |    (fib 1)
TRACE t4427: |    |    => 1
TRACE t4428: |    |    (fib 0)
TRACE t4428: |    |    => 0
TRACE t4426: |    => 1
TRACE t4429: |    (fib 1)
TRACE t4429: |    => 1
TRACE t4425: => 2
2

Clojure 1.4, dotrace taşındı:

Bağımlılık gerekir:

[org.clojure/tools.trace "0.7.5"]
(require 'clojure.tools.trace)

Ve ^:fonksiyon tanımı dinamik eklemek gerekir

(defn ^:dynamic fib[n] (if (< n 2) n (  (fib (- n 1)) (fib (- n 2)))))

Sonra bir kez daha Bob senin amcan

(clojure.tools.trace/dotrace [fib] (fib 3))

TRACE t4328: (fib 3)
TRACE t4329: | (fib 2)
TRACE t4330: | | (fib 1)
TRACE t4330: | | => 1
TRACE t4331: | | (fib 0)
TRACE t4331: | | => 0
TRACE t4329: | => 1
TRACE t4332: | (fib 1)
TRACE t4332: | => 1
TRACE t4328: => 2

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hallucination Land

    Hallucinatio

    14 Ocak 2011
  • Kingsimba357

    Kingsimba357

    7 NİSAN 2008
  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009