Giter VIP home page Giter VIP logo

fp-exercises's Introduction

Functional Programming Exercises

Getting Started

  • Requires node version 10.0.0 or higher.
npm install

Implement each function in the following order. Avoid using native JavaScript implementations when possible.

When you begin working on a problem, you can enable the tests with the command:

npm run enable [problem]

and enable the challenge mode with the command:

npm run enable:challenge [problem]

The function is complete when all tests are passing. To run the test suite enter the command:

npm test
# or
npm test:watch

Part I: Mathematics

  • add
  • subtract
  • inc
  • dec
  • multiply
  • divide
  • negate
  • max
  • min

Part II: Iteration

  • each
  • filter
  • reject
  • keys
  • pick
  • concat
  • append
  • reverse

Part III: Reduction

  • reduce
  • sum
  • product
  • mean
  • join
  • identity
  • all
  • any
  • none
  • find
  • equals
  • indexOf
  • includes
  • uniq

Part IV: Manipulation

  • map
  • pluck
  • merge
  • assoc
  • slice
  • head
  • tail
  • first
  • last
  • take
  • drop
  • takeLast
  • dropLast

Part V: Functions

  • bind
  • tap
  • once
  • delay
  • pickBy
  • pipe
  • partial
  • curry

Part VI: Challenge

  • median
  • groupBy
  • throttle
  • memoize
  • shuffle
  • zip
  • flatten
  • intersection
  • difference
  • split
  • equals (challenge)
  • indexOf (challenge)
  • includes (challenge)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.