isOne are very similar, they could be written as
const is = (n, x) => n === x;
then you could get rid of
or function if you extend it to
const isOneOf = (n, ...values) => values.indexOf(n) > -1;
the same is of course true for
oneOrZero which when thought through can also be expressed as returning
resulting in the following
const fibonacci = n => isOneOf(n, 0, 1)
: fibonacci(n - 1) + fibonacci(n - 2);
do you know of any reason not to go into this direction?
Or did I miss something?