Higher Order Functions - TristanVarewijck/Block-Tech GitHub Wiki

Introduction Quote

"A large program is a costly program, and not just because of the time it takes to build. Size almost always involves complexity, and complexity confuses programmers. Confused programmers, in turn, introduce mistakes (bugs) into programs. A large program then provides a lot of space for these bugs to hide, making them hard to find."

Higher-Order Function

The definition:

Higher order functions are functions that operate on other functions, either by taking them as arguments or by returning them. In simple words, A Higher-Order function is a function that receives a function as an argument or returns the function as output. (Sukhjinder Arora, 2018)

Abstractions

Abstractions verstoppen details zodat we de kans krijgen om op een hoger level te praten een code kan lang zij en makkelijk te lezen maar dit voegt wel veel ruimte toe een goed voorbeeld van een "real-life abstraction" zie je hier:

Soup Recipe 1:

Put 1 cup of dried peas per person into a container. Add water until the peas are well covered. Leave the peas in water for at least 12 hours. Take the peas out of the water and put them in a cooking pan. Add 4 cups of water per person. Cover the pan and keep the peas simmering for two hours. Take half an onion per person. Cut it into pieces with a knife. Add it to the peas. Take a stalk of celery per person. Cut it into pieces with a knife. Add it to the peas. Take a carrot per person. Cut it into pieces. With a knife! Add it to the peas. Cook for 10 more minutes.

Soup Recipe 2:

- Per person: 1 cup dried split peas, half a chopped onion, a stalk of celery, and a carrot. <br>
- Soak peas for 12 hours. Simmer for 2 hours in 4 cups of water (per person). Chop and add vegetables. Cook for 10 more minutes.

Explain:

Er staat hier in principe hetzelfde maar de onderste tekst is meer to the point en veel korter dan het eerste recept dit maakt het tweede recept efficiënter.

Filtering Arrays

To find the scripts in the data set that are still in use, the following function might be helpful. It filters out the elements in an array that don’t pass a test.

Dit kan denk ik handig zijn om resultaten te kunnen filteren op basis van een bepaalde input (form) iets wat ik zelf bij mijn project kan gebruiken dit ga ik zeker verder onderzoeken om het vervolgens misschien in mijn eigen project te gebruiken.

Ik weet dat je forEach voor een loop kan gebruiken en dat je in combinatie van filter je een actie kan laten uitvoeren wanneer de function "pass"

Opmerking

Ik snapte maar bar weinig van dit artikel juist door alle voorbeelden werd het nog verwarrender, het waren namelijk allemaal stukken code die ik nog nooit heb gezien. Wat ik wel interessant vond zijn het filteren arrays omdat ik denk dat ik dit ook wel zou kunnen gebruiken en abstraction dat je de dezelfde code kan schrijven op een manier die efficiënter is.

Resource