Мне кажется, что это будет работать:
b2i = (x) -> if x then 1 else -1
b2i(true) # => 1
b2i(false) # => -1
Это определение функции приведет к (не очень захватывающему) JavaScript:
var b2i;
b2i = function(x) {
if (x) {
return 1;
} else {
return -1;
}
};
Обратите внимание , что CoffeeScript ?
является экзистенциальным оператором, поэтому
x ? 1 : -1
превратится в что-то немного неожиданное, как
if (typeof x !== "undefined" && x !== null) {
x;
} else {
({ 1: -1 });
};