support even/odd for @row and @col

This commit is contained in:
yuanchuan 2017-03-03 13:50:36 +08:00
parent 5d025729ac
commit e80bc9ed0b
2 changed files with 40 additions and 8 deletions

View File

@ -13,19 +13,35 @@ function at(x, y) {
}
function row(x) {
return n => n == x;
return n => {
if (n == 'odd') return is_odd(x);
else if (n == 'even') is_even(x);
return n == x;
}
}
function col(x, y) {
return n => n == y;
return n => {
if (n == 'odd') return is_odd(y)
else if (n == 'even') is_even(y);
return n == y;
}
}
function even(x, y, count) {
return _ => !(count % 2);
return _ => is_even(count);
}
function odd(x, y, count) {
return _ => !!(count % 2);
return _ => is_odd(count);
}
function is_even(n) {
return !!(n % 2);
}
function is_odd(n) {
return !is_even(n);
}

View File

@ -7,17 +7,33 @@ export function at(x, y) {
}
export function row(x) {
return n => n == x;
return n => {
if (n == 'odd') return is_odd(x);
else if (n == 'even') is_even(x);
return n == x;
}
}
export function col(x, y) {
return n => n == y;
return n => {
if (n == 'odd') return is_odd(y)
else if (n == 'even') is_even(y);
return n == y;
}
}
export function even(x, y, count) {
return _ => !(count % 2);
return _ => is_even(count);
}
export function odd(x, y, count) {
return _ => !!(count % 2);
return _ => is_odd(count);
}
function is_even(n) {
return !!(n % 2);
}
function is_odd(n) {
return !is_even(n);
}