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
add(1)(2)

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()