# Currying Order?

2 rules of functional programming is 1 parameter and each function must return something. Using this, currying helps to bridge the gap allowing multiple parameters.

``````const add = x => y => x + y
``````

So what order should be used?

``````const find = people => person => people.filter(p => p === person)
``````

or

``````const find = person => people => people.filter(p => p === person)
``````
``````find(people)(person)
find(person)(people)
``````

Now if we start to use them we get some curry properties.

``````const findPerson = find(people)

findPerson(person)
``````
``````const findPerson = find(person)

findPerson(people)
``````

That’s where I am at now. What is a better option?

## Follow-up

With currying, it’s important that the parameters of functions start with options and end with the main operand.

So in our person/people example we would have people be the start, as those are the options.

``````const findPerson = find(people)
const foundPerson = findPerson(person)
``````
``````const multiplyVector = size => vector => vector * size

const multiplyVectorBy10 = multiplyVector(10)
multiplyVectorBy10(.8)
``````
``````const setup = () => {
const state = {}

const loop = state => () => {

requestAnimationFrame(loop(state))
}

requestAnimationFrame(loop(state))
}

const run = setup({ width: 1024, height: 768 })

run()
``````