Created
August 29, 2011 00:11
-
-
Save swannodette/1177437 to your computer and use it in GitHub Desktop.
redblack.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
(ns play.a | |
(:require-macros [match.core :as m])) | |
(defn balanced? [x] | |
(m/match [x] | |
[([:black [:red [:red _ _ _] _ _] _ _] | | |
[:black [:red _ _ [:red _ _ _]] _ _] | | |
[:black _ _ [:red [:red _ _ _] _ _]])] true | |
:else false)) | |
(balanced? [:black [:red [:red nil nil nil] nil nil] nil nil]) | |
;; true | |
*/ | |
(function(a) { | |
if(s(function() { | |
var c = N.call(e, V, a); | |
return s(c) ? z.call(e, J.call(e, a), 4) : c | |
}())) { | |
var c = K.call(e, a, P.call(e, 0, 0)); | |
if(s(z.call(e, c, "\ufdd0'black"))) { | |
var d = K.call(e, a, P.call(e, 1, 0)); | |
if(s(function() { | |
var a = N.call(e, V, d); | |
return s(a) ? z.call(e, J.call(e, d), 4) : a | |
}())) { | |
if(c = K.call(e, d, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var f = K.call(e, d, P.call(e, 1, 0)); | |
if(s(function() { | |
var a = N.call(e, V, f); | |
return s(a) ? z.call(e, J.call(e, f), 4) : a | |
}())) { | |
if(c = K.call(e, f, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
return!0 | |
}else { | |
if(s("\ufdd0'else")) { | |
var g = K.call(e, d, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, g); | |
return s(a) ? z.call(e, J.call(e, g), 4) : a | |
}())) { | |
if(c = K.call(e, g, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
return!0 | |
}else { | |
if(s("\ufdd0'else")) { | |
var i = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, i); | |
return s(a) ? z.call(e, J.call(e, i), 4) : a | |
}())) { | |
if(c = K.call(e, i, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var k = K.call(e, i, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, k); | |
return s(a) ? z.call(e, J.call(e, k), 4) : a | |
}()) ? (c = K.call(e, k, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
if(s("\ufdd0'else")) { | |
var m = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, m); | |
return s(a) ? z.call(e, J.call(e, m), 4) : a | |
}())) { | |
if(c = K.call(e, m, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var o = K.call(e, m, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, o); | |
return s(a) ? z.call(e, J.call(e, o), 4) : a | |
}()) ? (c = K.call(e, o, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
if(s("\ufdd0'else")) { | |
var q = K.call(e, d, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, q); | |
return s(a) ? z.call(e, J.call(e, q), 4) : a | |
}())) { | |
if(c = K.call(e, q, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
return!0 | |
}else { | |
if(s("\ufdd0'else")) { | |
var x = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, x); | |
return s(a) ? z.call(e, J.call(e, x), 4) : a | |
}())) { | |
if(c = K.call(e, x, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var M = K.call(e, x, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, M); | |
return s(a) ? z.call(e, J.call(e, M), 4) : a | |
}()) ? (c = K.call(e, M, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
if(s("\ufdd0'else")) { | |
var da = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, da); | |
return s(a) ? z.call(e, J.call(e, da), 4) : a | |
}())) { | |
if(c = K.call(e, da, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var ya = K.call(e, da, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, ya); | |
return s(a) ? z.call(e, J.call(e, ya), 4) : a | |
}()) ? (c = K.call(e, ya, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
if(s("\ufdd0'else")) { | |
var Ja = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, Ja); | |
return s(a) ? z.call(e, J.call(e, Ja), 4) : a | |
}())) { | |
if(c = K.call(e, Ja, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var Za = K.call(e, Ja, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, Za); | |
return s(a) ? z.call(e, J.call(e, Za), 4) : a | |
}()) ? (c = K.call(e, Za, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
if(s("\ufdd0'else")) { | |
var Ma = K.call(e, a, P.call(e, 3, 0)); | |
if(s(function() { | |
var a = N.call(e, V, Ma); | |
return s(a) ? z.call(e, J.call(e, Ma), 4) : a | |
}())) { | |
if(c = K.call(e, Ma, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red"))) { | |
var cb = K.call(e, Ma, P.call(e, 1, 0)); | |
return s(function() { | |
var a = N.call(e, V, cb); | |
return s(a) ? z.call(e, J.call(e, cb), 4) : a | |
}()) ? (c = K.call(e, cb, P.call(e, 0, 0)), s(z.call(e, c, "\ufdd0'red")) ? !0 : s("\ufdd0'else") ? !1 : e) : s("\ufdd0'else") ? !1 : e | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return e | |
} | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}else { | |
return s("\ufdd0'else") ? !1 : e | |
} | |
}).call(e, W(["\ufdd0'black", W(["\ufdd0'red", W(["\ufdd0'red", e, e, e]), e, e]), e, e])); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment