Comments (3)
I can't get through Exercise 8(Call) due to, what seems to be, based on the error message, this deprecated sprintf
package:
$ fjs run 8.js
/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:163
throw new Error(sprintf('[sprintf] expecting number but found %s "' + arg + '"', get_type(arg)));
^
Error: [sprintf] expecting number but found undefined "undefined"
at str_format.format (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:163:12)
at str_format (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:77:28)
at Object.vsprintf (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:244:17)
at _defaultTranslation (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/index.js:28:15)
at Object.defaultTranslation (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/index.js:34:9)
at Object.__ (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/lib/createTranslator.js:30:15)
at /usr/local/lib/node_modules/functional-javascript-workshop/exercises/basic_call/exercise.js:56:19
at obtainResult (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:100:21)
at Exercise.<anonymous> (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:66:27)
at next (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:188:19)
I've set up an alias for functional-javascript
.
What's odd.. is that once I run this.. all the rest of my previous exercises stop working as well:
$ fjs run 7.js
/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:163
throw new Error(sprintf('[sprintf] expecting number but found %s "' + arg + '"', get_type(arg)));
^
Error: [sprintf] expecting number but found undefined "undefined"
at str_format.format (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:163:12)
at str_format (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:77:28)
at Object.vsprintf (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/sprintf/lib/sprintf.js:244:17)
at _defaultTranslation (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/index.js:28:15)
at Object.defaultTranslation (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/index.js:34:9)
at Object.__ (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/node_modules/i18n-core/lib/createTranslator.js:30:15)
at /usr/local/lib/node_modules/functional-javascript-workshop/exercises/basic_call/exercise.js:56:19
at obtainResult (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:100:21)
at Exercise.<anonymous> (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:66:27)
at next (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:188:19)
$ fjs run 6.js
/Users/matthewmarcus/dev/functional-js/6.js:2
return inputWords.reduce((agg, word) => {
^
TypeError: inputWords.reduce is not a function
at countWords (/Users/matthewmarcus/dev/functional-js/6.js:2:21)
at /usr/local/lib/node_modules/functional-javascript-workshop/exercises/basic_call/exercise.js:56:44
at obtainResult (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:100:21)
at Exercise.<anonymous> (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:66:27)
at next (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:188:19)
at /usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:195:7
at Exercise.<anonymous> (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/runner.js:34:5)
at next (/usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:188:19)
at /usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/exercise.js:195:7
at /usr/local/lib/node_modules/functional-javascript-workshop/node_modules/workshopper-exercise/execute.js:110:7
If I run functional-javascript-workshop
again, and "go back" to the 7th test.. it works again :/
$ fjsws
FUNCTIONAL JAVASCRIPT IS GOOD
Select an exercise and hit Enter to begin
─────────────────────────────────────────────────────────────────
» Hello World [COMPLETED]
» Higher Order Functions [COMPLETED]
» Basic: Map [COMPLETED]
» Basic: Filter [COMPLETED]
» Basic: Every Some [COMPLETED]
» Basic: Reduce [COMPLETED]
» Basic: Recursion [COMPLETED]
» Basic: Call
» Partial Application without Bind
» Partial Application with Bind
» Implement Map with Reduce
» Function Spies
» Blocking Event Loop
» Trampoline
» Async Loops
» Recursion
» Currying
» Function Call
─────────────────────────────────────────────────────────────────
HELP
CHOOSE LANGUAGE
EXIT
FUNCTIONAL JAVASCRIPT IS GOOD
───────────────────────────────
Basic: Recursion
Exercise 7 of 18
Recursion is a fundamental programming concept which can lead to elegant and efficient solutions to algorithmic problems. In fact, recursion is so powerful, all iterating behaviour can be defined using recursive functions. You will find recursion indispensable when iterating over nested data structures.
A recursive function is a function which calls itself. For example, this recursive function will take an array of words, and return an array of those words, uppercased.
function toUpperArray(items) {
if (!items.length) return [] // end condition
var head = items[0] // item to operate on
head = head.toUpperCase() // perform action
var tail = items.slice(1) // next
return [head].concat(toUpperArray(tail)) // recursive step
}
toUpperArray(['hello', 'world']) // => ['HELLO', 'WORLD']
The point of this exercise is to familiarise yourself with recursion by implementing a familiar interface using a recursive function.
# Task
Implement Array#reduce using recursion.
To test your reduction works correctly we will use your reduce implementation to execute our solution to the previous basic_reduce problem. i.e. your reduce function will be passed an array of words, and a function, and an initial value which will return an object containing the counts for each word found in the array. You don't need to implement this functionality, it will be supplied to your reduce implementation.
For simplicity, your implementation of reduce need not replicate the behaviour of a reduce missing an initial value. You may assume the initial value will always be supplied.
## Arguments
* arr: An Array to reduce over
* fn: Function to use as the reduction step. Like regular Array#reduce, this function must be passed previousValue, currentValue, index and the array we're iterating over.
* init: Initial value of the reduction. Unlike Array#reduce, this value is required (and you may assume it will always be supplied).
## Example
// Your reduce function should behave the same as a
// regular Array#reduce, but it will take the array
// to operate on as the first argument:
reduce([1,2,3], function(prev, curr, index, arr) {
return prev + curr
}, 0)
// => 6
## Conditions
* Do not use any for/while loops.
* Do not use any Array methods like Array#map or Array#reduce.
## Resources
* https://en.wikipedia.org/wiki/Recursion
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
## Boilerplate
function reduce(arr, fn, initial) {
// SOLUTION GOES HERE
}
module.exports = reduce
» To print these instructions again, run: functional-javascript print
» To execute your program in a test environment, run: functional-javascript run program.js
» To verify your program, run: functional-javascript verify program.js
» For help run: functional-javascript help
$ fjs run 7.js
input: [ 'laboris', 'deserunt', 'id', 'culpa', 'id', 'eiusmod', 'aliquip', 'do', 'cillum', 'qui', 'proident', 'velit', 'duis', 'dolore', 'deserunt', 'pariatur', 'lorem', 'enim', 'exercitation', 'enim', 'reprehenderit', 'non', 'consectetur', 'commodo', 'cillum', 'duis', 'magna', 'velit', 'officia', 'do', 'eiusmod', 'quis', 'dolor', 'fugiat', 'deserunt', 'aliqua', 'dolor', 'ea', 'irure', 'occaecat', 'deserunt', 'dolore', 'veniam', 'in' ]
submission: { laboris: 1, deserunt: 4, id: 2, culpa: 1, eiusmod: 2, aliquip: 1, do: 2, cillum: 2, qui: 1, proident: 1, velit: 2, duis: 2, dolore: 2, pariatur: 1, lorem: 1, enim: 2, exercitation: 1, reprehenderit: 1, non: 1, consectetur: 1, commodo: 1, magna: 1, officia: 1, quis: 1, dolor: 2, fugiat: 1, aliqua: 1, ea: 1, irure: 1, occaecat: 1, veniam: 1, in: 1 }
Something's most definitely broken w/ this package....
from functional-javascript-workshop.
Pretty sure my solution is right too :/
https://repl.it/@RavenHursT/Functional-JS-Workshop-Exercise-8-Solution
from functional-javascript-workshop.
Arg.. can't skip and go on to 9 either :-/
$ fjs run 9.js
/usr/local/lib/node_modules/functional-javascript-workshop/exercises/partial_application_without_bind/wrapper.js:16
if (i % 2 === 0) info.apply(null, message.split(' '))
^
TypeError: Cannot read property 'apply' of undefined
at /usr/local/lib/node_modules/functional-javascript-workshop/exercises/partial_application_without_bind/wrapper.js:16:25
at Array.forEach (<anonymous>)
at Object.<anonymous> (/usr/local/lib/node_modules/functional-javascript-workshop/exercises/partial_application_without_bind/wrapper.js:15:7)
at Module._compile (internal/modules/cjs/loader.js:654:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
from functional-javascript-workshop.
Related Issues (20)
- Item 4) Why aren't anonymous arrow functions being proudly advertized?
- submittedUser is undefined every once in a while
- exersise #7 Basic: Recursion code bug
- Why is < 10 operations considered a failure for Exercise 13?
- ES6 Purely Functional Solution For Exercise #16
- Using workshops locally HOT 1
- Exercise 15 solution not fully functional without side effects HOT 3
- async_loops solution accepts any solution that runs HOT 3
- npm WARN deprecated [email protected]: no longer maintained
- Partial Application without Bind ERROR HOT 2
- Exercise 1 - Hello World HOT 3
- Thank you!
- implement_map_with_reduce Boiler Plate is Incorrect HOT 1
- problem with installing the workshop
- Error on running npm install -g functional-javascript-workshop@latest HOT 1
- [Lecture: Basic: Every Some] The result of exercise is returned PASSED although the solution is not correct
- basic recursion - simpler solution HOT 1
- Basic: Call exersion - a question about no using `prototype` HOT 1
- [Partial application without Bind] Why a few of test cases are passed, some are failed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from functional-javascript-workshop.