Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. // unary
  2. var unary = function (apply) {
  3. return function (arg) {
  4. return function (x, y, z) {
  5. return apply(arg(x, y, z));
  6. };
  7. }
  8. };
  9.  
  10. var variable = function (name) {
  11. return function (x, y, z) {
  12. switch (name) {
  13. case 'x': {
  14. return x;
  15. }
  16. case 'y': {
  17. return y;
  18. }
  19. case 'z': {
  20. return z;
  21. }
  22. }
  23. }
  24. };
  25.  
  26. var cnst = function (value) {
  27. return function (x) {
  28. return value;
  29. }
  30. };
  31.  
  32. var negate = unary(
  33. function (arg) {
  34. return -arg;
  35. }
  36. );
  37.  
  38. var cube = unary(
  39. function (arg) {
  40. return Math.pow(arg, 3);
  41. }
  42. );
  43.  
  44. var cuberoot = unary(
  45. function (arg) {
  46. return Math.pow(arg, 1.0 / 3);
  47. }
  48. );
  49.  
  50. // binary
  51. var binary = function (apply) {
  52. return function (left, right) {
  53. return function (x, y, z) {
  54. return apply(left(x, y, z), right(x, y, z));
  55. };
  56. }
  57. };
  58.  
  59. var add = binary(
  60. function (left, right) {
  61. return left + right;
  62. }
  63. );
  64.  
  65. var subtract = binary(
  66. function (left, right) {
  67. return left - right;
  68. }
  69. );
  70.  
  71. var multiply = binary(
  72. function (left, right) {
  73. return left * right;
  74. }
  75. );
  76.  
  77. var divide = binary(
  78. function (left, right) {
  79. return left / right;
  80. }
  81. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement