Closure Version of Complex Number
const makeComplexNumberFromRealImag = (x, y) => {
const dispatch = (op) => {
switch (op) {
case 'realPart':
return x;
case 'imagPart':
return y;
case 'magnitude':
return Math.sqrt(x * x + y * y);
case 'angle':
return Math.atan(y / x);
default:
throw new Error('Unknown op: ' + op);
}
}
return dispatch;
};
const n = makeComplexNumberFromRealImag(1, 2);
console.log(n('realPart'));
console.log(n('imagPart'));
console.log(n('magnitude'));
console.log(n('angle'));
no comments