If I want to write my code with functional style I will use carrying. It needs for construct my app like a building with bricks.
Correct example:
let sum = (a, b) => a + b
let add5 = sum(5)
let _ = sum(10)
let _ = 10->sum
Incorrect:
type user = {
name: string,
age: int,
}
let updateUserAge = (age, user) => {...user, age}
let setAgeToUser = updateUserAge(18)
let user: user = { name: "Jake", age: 10 }
let _ = user->setAgeToUser // ok
let _ = user->updateUserAge(18) // error
If I could use composition function (not pipeline) then I could write consistent functional code like in ELM or Haskell.
Maybe I don’t know how it write beatiful. I don’t want write like there:
let updateUserAge = (user, age) => {...user, age}
let setAgeToUser = x => updateUserAge(x, 18)
let user: user = { name: "Jake", age: 10 }
let _ = user->setAgeToUser // ok
let _ = user->updateUserAge(18) // ok
x => (x, ..)
– It looks bad.