Tag LINQ
Callback hell
In mijn werk als C#-ontwikkelaar maak ik veelvuldig gebruik van functionele programmeerconcepten. Als een functie me een object T
teruggeeft of niet, dan codeer ik dat netjes in de signatuur van die functie door een Option<T>
terug te geven. Dat dwingt de aanroepende partij om beide scenario’s expliciet af te handelen. Hartstikke handig! – Maar: niet zonder zijn eigen set problemen. Want wat gebeurt er als je meerdere functies achter elkaar aanroept die allemaal een Option<T>
teruggeven? Dan komen we terecht in wat men callback hell noemt.
ForEach, Aggregate en Select
ForEach
gebruik je alleen als je een Action
- zonder return value! - uit wil voeren voor elke lijstwaarde. Select
gebruik je als je een resultaat verwacht. En Aggregate
gebruik je als je het verschil tussen beide uit wil leggen. Of - vooruit - als je wil aggregeren.
Zes dingen die ik leerde op Techorama
Een tijd geleden bezocht ik softwareconferentie Techorama in Utrecht. Ik hoorde een boel nieuwe ideeën, werd gesterkt in enkele van mijn al bestaande overtuigingen, en uitgedaagd sommige ingesleten gewoonten te herzien. Uit mijn stapel aantekeningen destilleer ik zes inzichten die ik alleen al de eerste dag opdeed.
Wat is een functor?
Wat is een functor, vraag je? Lang verhaal kort: functors zijn typen die een Map
-functie implementeren. Wat is een Map
-functie, vraag je? Lang verhaal kort: ken je LINQ? - heb je wel eens Select
gebruikt? - nou, dat dus. Maar misschien loont het zich er nét iets langer bij stil te staan.