4 ms·
"filter" has to be the worst library name. I have no clue what it's doing unless I read the documentation. On the other hand "append" feels like a much more con
by andrewprock 10y ago
"filter" has to be the worst library name. I have no clue what it's doing unless I read the documentation. On the other hand "append" feels like a much more conventional and comprehensible name.
- jmcomets 10y agoI agree with you that `filter` is less explicit than something like `copy_if` (C++). Does it return elements matching the predicate or not matching it? I struggled with this for a while in CS. After learning different programming languages and getting some field experience I noticed that the `filter` pattern is pretty common in the programming world. It's one of those pervasive functional patterns that are so practical that they were included at some point in imperative languages.
- coldtea 10y ago>"filter" has to be the worst library name. I have no clue what it's doing unless I read the documentation It, I dunno, FILTERS a collection keeping only certain elements (those that match the filter)? What else would it possibly do? Besides a standard CS term, it's also a concept from real life... To me the name is crystal clear.
- andrewprock 10y agoA filter creates two sets, one with the thing, and the other without. When you filter something, you might be interested in what is filtered in, or what is filtered out. Ponder for a second the phrases, "filtered water", "coffee filter", "camera filter", etc. In all of those cases, you are interested in the set without the filtered thing, not with. Compare this to "select" which is a much clearer name.
- coldtea 10y ago>Ponder for a second the phrases, "filtered water", "coffee filter", "camera filter", etc. In all of those cases, you are interested in the set without the filtered thing, not with. Filtered is akin to "cleansed" (it refers to the "main body") not akin to "picked out" (which would have applied to the undesirable elements. It's actually the water (or the light, in the case of camera filter) that's filtered (hence the name "filtered water" and not "filtered dust and detritus"). The other stuff is not what's being filtered -- just what's "filtered out".