Difform is a project mainly written in Clojure, it's free.
allows you to diff clojure forms
Diffs two clojure forms, eg:
(use 'com.georgejahad.difform) (difform { 1 2 3 4 5 6} { 5 6 1 2 3 7}) {1 2, 3
(difform
{:cart {:items [{:new-delivery {:ids ["-1"]}, :old-unit-price "700.00", :product-id "prod-1", :quantity "1", :unit-price "700.00"}], :old-total-dollars "700.00", :purchase? false, :total-dollars "700.00"}, :day "2010-05-18", :event-ids ["1274166000010:some-session-id-1"], :old-id "14", :delivery {:ids [nil]}, :session "some-session-id-1"}
{:day "2010-05-18", :old-id "14", :session "some-session-id-1", :delivery nil, :cart {:purchase? false, :old-total-dollars "1400.00", :total-dollars "1400.00", :items [{:product-id "prod-1", :old-unit-price "700.00", :unit-price "700.00", :quantity "2", :new-delivery {:ids ["-1"]}}]}, :event-ids ["1274166000000:some-session-id-1"]})
{:cart {:items [{:new-delivery {:ids ["-1"]}, :old-unit-price "700.00", :product-id "prod-1", :quantity "
A very common use is with clojure.test. For example, if clojure test reports you have failed a test like this:
FAIL in (xyz-test) (xyz_spec.clj:7) expected: (= form1 form2)
Run (diff form1 form2) to see what the exact failure was.