On Thursday, 14 February 2013 at 20:01:37 UTC, Jacob Carlborg wrote:
On 2013-02-14 13:42, Andrei Alexandrescu wrote:

I understand. Adding functions such as the negation of empty becomes a
judgment call.

Phobos does have quite a few simple functions that could be easily achieved through expression composition (e.g. trim) or statement composition (e.g. enforce). So again it's all a matter of judgment.

Walter and I don't consider the negation of empty as useful enough to
receive a name.

How about this, I have another similar function that might be useful in Phobos as well.

"isBlank" and "isPresent". "isPresent" is just the opposite of "isBlank".

But "present" and "blank" aren't opposites in English. "isNonBlank" or "isNotBlank" are opposites of "isBlank", but "isPresent" would be the opposite of "isAbsent." It seems almost meaningless in the context of a string predicate --- If I saw it in code, I would guess it meant "not a null reference."

Similarly with "any" vs. "empty." I would think that "any" is synonymous with "some" and therefore should be the opposite of either "none" or "all" (leaning toward "all," given the commonality of some/all predicates in other languages, and the exists/forall concepts in predicate logic).

Regardless of their name, I would not like to see functions like these in Phobos. It's already challenging enough to keep the signature of the larger Phobos modules in one's head. Adding functions like these just adds noise... expressions like (!s.empty) are perfectly readable.

Graham



"isBlank" works like this:

* If it's a string - it's considered blank if it's empty or only contains white space

* If you can call "empty" on it - return the result

* If it's a reference type and it's null - return true

* Otherwise return false

Reply via email to