[rb-general] Source code timestamps
Eric Myhre
hash at exultant.us
Tue Dec 6 17:06:55 CET 2016
> They are [pure functions], if you model them that way.
> [...] set up fully isolated build environments such
> that, by construction, we get close to the model of a pure function.
I think we agree vigorously :) My only reason for commenting is for that
"getting close" part: I think it's important to choose language so that
we acknowledge the labor that it is.
Even as we seek to reduce the number of inputs that matter (e.g.
standardizing "LC_ALL", which I have no opinion on, but was an example
mentioned), it is useful to continue capturing the function `(a, b, c)
-> d` even if we believe `(a, _, _) -> d` for all values in the blanks,
simply so we can describe that system completely, and indeed verify it.
This is why I think it might be useful to call a pure, predictable `(a,
b, c) -> d` "reproducible", and perhaps choose another name entirely
("robust" or "portable" are the only things that come to mind; any other
words resonate for anyone?) for the quest towards an (also pure, but
smaller output domain relative to input domain) `(a, _, _) -> d`.
Then when things fail to be pure functions, we can call them bad names
all the more easily :) Because pursuing the function of "less" inputs
may be quite hard, whereas pursing the basic purity should (!) be quite
easy.
More information about the rb-general
mailing list