Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // unary
- var unary = function (apply) {
- return function (arg) {
- return function (x, y, z) {
- return apply(arg(x, y, z));
- };
- }
- };
- var variable = function (name) {
- return function (x, y, z) {
- switch (name) {
- case 'x': {
- return x;
- }
- case 'y': {
- return y;
- }
- case 'z': {
- return z;
- }
- }
- }
- };
- var cnst = function (value) {
- return function (x) {
- return value;
- }
- };
- var negate = unary(
- function (arg) {
- return -arg;
- }
- );
- var cube = unary(
- function (arg) {
- return Math.pow(arg, 3);
- }
- );
- var cuberoot = unary(
- function (arg) {
- return Math.pow(arg, 1.0 / 3);
- }
- );
- // binary
- var binary = function (apply) {
- return function (left, right) {
- return function (x, y, z) {
- return apply(left(x, y, z), right(x, y, z));
- };
- }
- };
- var add = binary(
- function (left, right) {
- return left + right;
- }
- );
- var subtract = binary(
- function (left, right) {
- return left - right;
- }
- );
- var multiply = binary(
- function (left, right) {
- return left * right;
- }
- );
- var divide = binary(
- function (left, right) {
- return left / right;
- }
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement