Currying is the technique of translating the evaluation of a function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument. The number of arguments or operands that the function takes is also known as arity /ˈærᵻti/ of a function.
Installation & Update
$ npm install -g currying-workshopper
Some npm installations require use of
sudo in the above command. Recommend to instead reinstall node/npm so you don't need sudo.
1. Selecting a problem to work on
Once the workshop is installed, run
curry to print a menu
where you can select a problem to work on.
You are advised to complete them in order, as later problems will build on skills developed by solving previous problems.
2. Writing your solution
Once you have selected a problem, the workshop will remember which problem you are working on. Using your preferred editor, simply create a file to write your solution in.
3. Testing your solution
Use the workshop's
run command to point the workshop at your solution file. Your solution will loaded
and passed the problem input. This usually won't perform any validation, it will only show the program output.
$ curry run mysolution.js
4. Verifying your solution
Your solution will be verified against the output of the 'official' solution. If all of the output matches, then you have successfully solved the problem!
$ curry verify mysolution.js
Feedback and criticism is welcome, please log your troubles in issues.
Full curriculum reviews like this one are incredibly helpful. More feedback like this please!
We're looking for more practical problems, so if you come across a problem in your day-to-day work which was solved simply and elegantly with currying techniques, please help us create an exercise out of it.
This tutorial was built using rvagg's workshopper framework.