Functions I

Sometimes, the elegant implementation is just a function. Not a method. Not a class. Not a framework. Just a function. – John Carmack

Advance your knowledge of functions and functional patterns with comprehensive set of exercises. Go through interactive quizzes, and solve downloadable tasks to figure our how everything works together. Master concepts like arity, purity, side effects, memoization, mutability, scope, etc. Warning: your perception of the topic will change forever!

FreeJavaScript

Curriculum

0Entry Test (4 exercises)
1Signature (7 exercises)
2Side Effects (14 exercises)
3Determinism (18 exercises)
4Scope (8 exercises)

51 exercises with solutions and explanations.

Before you start

1. We believe that a learning environment should be as realistic as possible. There are no Paste-n-Run sandboxes for coding tasks at Paqmind. You should use your own editor to write code and your own machine to run it – like a real programmer does.

2. Make sure you know the required theory, at least in the first approximation. Terms from the Curriculum should sound familiar for you. Refer to the Theory list below and always search for more. Start tomorrow (or next week) but start prepared.

3. Don't expect to pass the tutorial in one sitting. It's not a usual Easy-Level stuff made to massage your ego. We tried to make each exercise challenging, sometimes even discomfortable, yet enlightening. If you're here just to verify your knowledge, it may take a few days. But if you're new to the topic – it may easily take two weeks or more.

Refer to the How-to page for more information.

From the author

Function is the main building block of a code in high-level languages. You transform data, compose and decompose units of code, and even control space and time with functions. Functions come from algebra so mastering them is like mastering math: not easy, but truly rewarding. It's a huge topic so we can only scratch the surface of it in boundaries of a single tutorial. Nevertheless, every concept we cover here is super important and we suggest you to give it a go, especially if you don't have a CS degree. Let's learn by practice!


About the Author

Ivan Kleshnin
Fullstack Developer

Qualified engineer, mentor, and entrepreneur. 12+ years of experience. As an author, prefers to give universal knowledge that will remain relevant for years. Professional interests include functional and reactive programming, static types, software architecture.