3 ms·
The fracturing of the narrative is an argument against the idea sometimes espoused (most often implicitly, but sometimes explicitly) that, as functions are usef
by mannykannot 8y ago
The fracturing of the narrative is an argument against the idea sometimes espoused (most often implicitly, but sometimes explicitly) that, as functions are useful, then the maximal factoring into functions must be optimal.
Nevertheless, functions (with names) differ from 'where' clauses in precisely that: they have a name, and ideally, a function's name might tell you everything you need to know about it, though in practice, it is hard to fully and unambiguously state a function's contract in its name, especially if it has side effects.
I doubt it is possible for a language to be such that everything that matters in understanding a given part is always lexically local. I think we need to look to tools, rather than syntax, to help with that.
- lmm 8y ago> Nevertheless, functions (with names) differ from 'where' clauses in precisely that: they have a name, and ideally, a function's name might tell you everything you need to know about it, though in practice, it is hard to fully and unambiguously state a function's contract in its name, especially if it has side effects. Huh? What's the difference in "naminess" between: bar x = ... foo x y = bar (x + y) and foo x y = bar (x + y) where bar x = ... ?
- mannykannot 8y agoI see that you are right; 'where' clauses don't restrict the ways an author can introduce what Landin calls user-coined names.