https://www.7ix.net/archives/462.html
what is a pure function? how to use pure functions reasonably?