Skip to content

Instantly share code, notes, and snippets.

@natefaubion
Last active August 29, 2015 14:02
Show Gist options
  • Save natefaubion/ef351454f79f2651d985 to your computer and use it in GitHub Desktop.
Save natefaubion/ef351454f79f2651d985 to your computer and use it in GitHub Desktop.
function test1 {
Black(Red(Red(*, *, *), *, *), *, *) => 'balance-1',
Black(Red(*, *, Red(*, *, *)), *, *) => 'balance-2',
Black(*, *, Red(Red(*, *, *), *, *)) => 'balance-3',
Black(*, *, Red(*, *, Red(*, *, *))) => 'balance-4',
default => 'balanced'
}
function test2(tree) {
var res;
match tree {
case Black(Red(Red(*, *, *), *, *), *, *): res = 'balance-1';
case Black(Red(*, *, Red(*, *, *)), *, *): res = 'balance-2';
case Black(*, *, Red(Red(*, *, *), *, *)): res = 'balance-3';
case Black(*, *, Red(*, *, Red(*, *, *))): res = 'balance-4';
default : res = 'balanced';
}
return res;
}
function test1(a0) {
var r0 = Black.unapply(a0);
if (r0 != null && r0.length === 3) {
var r1 = r0[0];
var r2 = Red.unapply(r1);
if (r2 != null && r2.length === 3) {
var r3 = r2[0];
var r4 = Red.unapply(r3);
if (r4 != null && r4.length === 3) {
return 'balance-1';
}
var r5 = r2[2];
var r6 = Red.unapply(r5);
if (r6 != null && r6.length === 3) {
return 'balance-2';
}
}
var r7 = r0[2];
var r8 = Red.unapply(r7);
if (r8 != null && r8.length === 3) {
var r9 = r8[0];
var r10 = Red.unapply(r9);
if (r10 != null && r10.length === 3) {
return 'balance-3';
}
var r11 = r8[2];
var r12 = Red.unapply(r11);
if (r12 != null && r12.length === 3) {
return 'balance-4';
}
}
}
return 'balanced';
}
function test2(tree) {
var res;
var r0 = 1;
var r1 = Black.unapply(tree);
if (r1 != null && r1.length === 3) {
var r2 = r1[0];
var r3 = Red.unapply(r2);
if (r3 != null && r3.length === 3) {
var r4 = r3[0];
var r5 = Red.unapply(r4);
if (r5 != null && (r5.length === 3 && r0--)) {
res = 'balance-1';
}
if (r0) {
var r6 = r3[2];
var r7 = Red.unapply(r6);
if (r7 != null && (r7.length === 3 && r0--)) {
res = 'balance-2';
}
}
}
if (r0) {
var r8 = r1[2];
var r9 = Red.unapply(r8);
if (r9 != null && r9.length === 3) {
var r10 = r9[0];
var r11 = Red.unapply(r10);
if (r11 != null && (r11.length === 3 && r0--)) {
res = 'balance-3';
}
if (r0) {
var r12 = r9[2];
var r13 = Red.unapply(r12);
if (r13 != null && (r13.length === 3 && r0--)) {
res = 'balance-4';
}
}
}
}
}
if (r0) {
res = 'balanced';
}
return res;
}
function test1(a) {
a = Black.unapply(a);
if (null != a && 3 === a.length) {
var b = Red.unapply(a[0]);
if (null != b && 3 === b.length) {
var c = Red.unapply(b[0]);
if (null != c && 3 === c.length) {
return "balance-1";
}
b = Red.unapply(b[2]);
if (null != b && 3 === b.length) {
return "balance-2";
}
}
a = Red.unapply(a[2]);
if (null != a && 3 === a.length) {
b = Red.unapply(a[0]);
if (null != b && 3 === b.length) {
return "balance-3";
}
a = Red.unapply(a[2]);
if (null != a && 3 === a.length) {
return "balance-4";
}
}
}
return "balanced";
}
function test2(a) {
var b, c = 1;
a = Black.unapply(a);
if (null != a && 3 === a.length) {
var d = Red.unapply(a[0]);
if (null != d && 3 === d.length) {
var e = Red.unapply(d[0]);
null != e && 3 === e.length && c-- && (b = "balance-1");
c && (d = Red.unapply(d[2]), null != d && 3 === d.length && c-- && (b = "balance-2"));
}
c && (a = Red.unapply(a[2]), null != a && 3 === a.length && (d = Red.unapply(a[0]), null != d && 3 === d.length && c-- && (b = "balance-3"), c && (a = Red.unapply(a[2]), null != a && 3 === a.length && c-- && (b = "balance-4"))));
}
c && (b = "balanced");
return b;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment