plastikaweb
11/22/2017 - 12:26 PM

JS Bin Deep Dive Into Currying // source http://jsbin.com/mulovoh

JS Bin

Deep Dive Into Currying

// source http://jsbin.com/mulovoh

<!DOCTYPE html>
<html>
<head>
<meta name="description" content="Deep Dive Into Currying">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>

<script id="jsbin-javascript">
// curry
'use strict';

var getGradeTest = function getGradeTest(passGrade) {
      return function (failGrade) {
            return function (average) {
                  return function (testScore) {
                        return testScore >= average ? passGrade : failGrade;
                  };
            };
      };
};

var tester = getGradeTest('Pass')('Fail')(0.5);

console.log(tester(0.7), tester(0.3));

// uncurry
var uncurriedGetGradeTest = function uncurriedGetGradeTest(passGrade, failGrade, average, testScore) {
      return testScore >= average ? passGrade : failGrade;
};

console.log(uncurriedGetGradeTest('ok', 'ko', 0.5, 0.6));
</script>



<script id="jsbin-source-javascript" type="text/javascript">// curry
const getGradeTest = 
      passGrade => 
      failGrade =>
      average => 
      testScore => 
      testScore >= average ? passGrade : failGrade;

const tester = getGradeTest('Pass')('Fail')(0.5);

console.log(tester(0.7), tester(0.3));

// uncurry
const uncurriedGetGradeTest = 
      (passGrade, failGrade, average, testScore) => 
       testScore >= average ? passGrade : failGrade;

console.log(uncurriedGetGradeTest('ok', 'ko', 0.5, 0.6));
</script></body>
</html>
// curry
'use strict';

var getGradeTest = function getGradeTest(passGrade) {
      return function (failGrade) {
            return function (average) {
                  return function (testScore) {
                        return testScore >= average ? passGrade : failGrade;
                  };
            };
      };
};

var tester = getGradeTest('Pass')('Fail')(0.5);

console.log(tester(0.7), tester(0.3));

// uncurry
var uncurriedGetGradeTest = function uncurriedGetGradeTest(passGrade, failGrade, average, testScore) {
      return testScore >= average ? passGrade : failGrade;
};

console.log(uncurriedGetGradeTest('ok', 'ko', 0.5, 0.6));