DJ Adams

Blog posts tagged "functional-programming"

  1. Shift left with CAP

    In this post I posit that shifting left in our CAP based solutions is something that we should be striving to do.

  2. Point free coding and function composition

    In this post I explore and show examples of the concepts of point free coding, of chains of functions through which data flows, and of function composition.

  3. FP, function chains and CAP model loading

    Understanding functional programming approaches, no matter how trivial, can help in other areas. Here I explain how being comfortable with function chains helped in working out why a required (but unused) service was being loaded into the overall CDS model in a CAP project.

  4. Array.prototype.reduce and the optional initial value

    Today I learned about the subtlety of the optional initialValue parameter for the Array prototype's reduce method in JavaScript.

  5. Functional programming resources

    I've created quite a bit of FP related content in the past but it's somewhat scattered across different platforms and in different formats and I can't remember what or where it all is. So this is a meta post in which I point to all the resources (that I can remember that) I've created on the topic.

  6. TASC Notes - Part 9

    Notes on part 9 of The Art and Science of CAP, a mini series with Daniel Hutzel exploring the philosophy, the background, the technology history and layers that support and inform the SAP Cloud Application Programming Model.

  7. TASC Notes - Part 8

    Notes on part 8 of The Art and Science of CAP, a mini series with Daniel Hutzel exploring the philosophy, the background, the technology history and layers that support and inform the SAP Cloud Application Programming Model.

  8. TASC Notes - Part 7

    Notes on part 7 of The Art and Science of CAP, a mini series with Daniel Hutzel exploring the philosophy, the background, the technology history and layers that support and inform the SAP Cloud Application Programming Model.

  9. Functions as first class citizens in SICP Lecture 1A

    Exploring functions as first class citizens in SICP Lecture 1A and drawing parallels with queries in CAP.

  10. TASC Notes - Part 4

    Notes on part 4 of The Art and Science of CAP, a mini series with Daniel Hutzel exploring the philosophy, the background, the technology history and layers that support and inform the SAP Cloud Application Programming Model.

  11. The elements of programming with respect to CDL and SICP

    Drawing parallels between the elements of programming in SICP and CDS's Conceptual Definition Language.

  12. TASC Notes - Part 3

    Notes on part 3 of The Art and Science of CAP, a mini series with Daniel Hutzel exploring the philosophy, the background, the technology history and layers that support and inform the SAP Cloud Application Programming Model.

  13. reduce - the ur-function

    Why I think of reduce as the ur-function, a primitive building block from which other functions like map and filter can be constructed.

  14. Highest value in JS - different ways

    Exploring different ways to find the highest value in a JavaScript array as part of the Developer Challenge.

  15. Curating a collection of jq functions

    Curating a personal collection of jq functions and exploring how the jq module system works.

  16. More on the comma as generator, and streaming with select in jq

    Exploring the subtleties of the comma as a generator and streaming with select in jq.

  17. Recognising patterns and embracing the stream

    Refactoring a jq implementation of an LED number display by recognising patterns and embracing the stream-oriented nature of the language.

  18. Learning from community solutions on Exercism - part 3

    Dwelling on more small details in jq solutions to Exercism exercises.

  19. Learning from community solutions on Exercism - part 2

    Continuing to learn from community solutions on Exercism's jq track.

  20. Learning from community solutions on Exercism - part 1

    Learning from community solutions on the jq track in Exercism, starting with some interesting patterns.

  21. Array push with autovivification in jq

    Making a note about array push with autovivification in jq while working on Advent of Code.

  22. Some thoughts on jq and statelessness

    Reflecting on jq's stateless nature after reading about zq as an alternative.

  23. Understanding jq's reduce function

    Understanding jq's reduce function by relating it to the equivalent in JavaScript.

  24. Using functions more

    Exploring the benefits of using Bash functions more as a sweet spot between aliases and scripts.

  25. ES6, reduce and pipe

    In learning about functional programming, one thing that's worked for me is to take my time, and not rush over fundamental concepts. In fact, like a good beer or whisky, a fundamental concept is something to savour, to enjoy at a leisurely pace.

  26. Monday morning thoughts: dynamic language

    Musings on a particular function definition in JavaScript, and how it represents beauty and practicality in equal measure.

  27. Monday morning thoughts: what not how

    In this post, I think about how we program, about the way we describe what it is that we want the computer to do for us, and look at what has become for me the canonical example of the difference between 'what' and 'how'.

  28. Monday morning thoughts: functions - what functions?

    Musings on the concept of functions-as-a-service, what it means, and what it's good for.

  29. Functional programming - baby steps

    A gentle introduction to some core concepts in functional programming for those just starting out.

  30. The beauty of recursion and list machinery

    Exploring the beautiful patterns inherent in recursion and list processing in functional programming.

  31. F3C Parts 9 and 10 - Functors

    Exploring functors as part of my FunFunFunction Companion series.

  32. F3C Part 8 - Promises

    Exploring promises as part of my FunFunFunction Companion series.

  33. F3C Part 7 - Recursion

    Exploring recursion as part of my FunFunFunction Companion series.

  34. F3C Part 6 - Currying

    Exploring currying as part of my FunFunFunction Companion series.

  35. F3C - A FunFunFunction Companion Series

    Introducing my FunFunFunction Companion series on functional programming in JavaScript.

  36. F3C Part 5 - Closures

    Exploring closures as part of my FunFunFunction Companion series.

  37. F3C Part 4 - Reduce advanced

    Exploring advanced uses of reduce as part of my FunFunFunction Companion series.

  38. F3C Part 3 - Reduce basics

    Exploring the basics of reduce as part of my FunFunFunction Companion series.

  39. F3C Part 2 - Map

    Exploring the map function as part of my FunFunFunction Companion series.

  40. F3C Part 1 - Higher-order functions

    Exploring higher-order functions as part of my FunFunFunction Companion series on functional programming.

  41. FOFP 2.1 A look at filter

    Looking at the filter higher-order function as part of the fundamentals of functional programming.

  42. FOFP Fundamentals of functional programming

    Notes and resources for an introductory lecture on the fundamentals of functional programming at Xaverian College.

  43. FOFP 1.5 Creating functions

    Creating and composing functions as part of the fundamentals of functional programming.

  44. FOFP 1.4 A different approach with map

    Introducing the map function as a different approach to list processing.

  45. FOFP 1.3 Some basic list processing

    Exploring basic list processing with imperative and functional approaches.

  46. FOFP 1.2 Trying things out

    Setting up an environment to try out functional programming concepts interactively.

  47. FOFP 1.1 Introduction

    Introducing the fundamentals of functional programming with a definition and some context.

  48. Language minutiae and learning to SWIM

    Discovering small language details in Clojure while solving puzzles and learning to SWIM.

  49. Finding a wonderland number

    Solving a Wonderland Clojure Kata puzzle as a small evening exercise in functional thinking.

  50. Enlightenment in action

    On my journey to learn Clojure by solving 4Clojure challenges.

  51. 4Clojure Puzzle 66

    Solving 4Clojure puzzle 66 on my journey to learning more Clojure through online puzzles.

  52. Building blocks of language, structure and thought

    As I travel on my path to perhaps what I deem as some sort of enlightenment, back in time via Clojure to one of the great ancestors of language, structure and computational thought (Lisp), I continue to come across a simple theme.

  53. Coffee-time JavaScript recreation

    In preparing for co-presenting a hands-on session at SAP TechEd EMEA this coming week in Barcelona, I came across a chunk of JavaScript. In this post I try to improve it with robustness and immutability in mind.

  54. Breathing through the reduction meditation

    In this post I look even more closely at a simple Clojure implementation of a reduce function.

  55. My journey to Clojure

    I'm learning Clojure. Slowly, but hopefully surely.

  56. A meditation on reduction

    Looking at a version of the reduce function written in Clojure, from Do Things: a Clojure Crash Course.

  57. Functional Python - Itertools Exploration

    Exploring functional programming concepts in Python through itertools as part of my ongoing 30-day challenges.

See all tags.