21:51
<TabAtkins>
Hoo boy, I have to say, Kyle's "dynamic-composition-flow" examples look extraordinarily bad to me, as a reader. I assume he's deep enough in pointfree FP stuff that this makes sense to him, but every single function here would be vastly more readable if written as some plain functions that execute statements.
21:57
<TabAtkins>
And dynamic-composition-pipeline is quite bad too - why does he want to pass around an array named "getCustomerName"? That's clearly indicating a function, and is used as one; keeping it as an array just makes the code less readable.
23:22
<rbuckton>
getCustomerName doesn't seem to be an array. isn't it a function that returns an array?
23:30
<rbuckton>

partial is basically Function.bind, so:

getCustomerName := partial(flow, [pick("customerName"), formatName2])
                := flow.bind(null, pick("customerName"), formatName2)
                := arg => formatName2(pick("customerName")(arg))
                := arg => formatName2(arg.customerName)
23:45
<TabAtkins>
In file #2 it's a function, in the rest of the files it's an array of functions. (This is explicitly called out in comments in each file)