What about putting array.empty in object.d?

Nick Sabalausky a at a.a
Tue Mar 20 20:54:54 PDT 2012


Hear me out... ;)

Using empty seems to be emerging as the recommended practice for testing 
whether an array is empty. And that makes sense as it's consistent with 
other ranges. I'm all in favor of that.

But I've found myself avoiding empty (and instead doing arr=="" or checking 
the .length) just because empty doesn't work on arrays unless you've already 
imported std.array (unless my knowledge is out-of-date, which is possible 
considering how fast things are moving ;) ). So doing "arr.empty" is a 
little messy and increases my cognitive load, whereas arr=="", arr==[], and 
arr.length == 0, "just work".

Considering that:

1. Arrays are (from the user's perspective) a built-in type that doesn't 
need to be explicitly imported.

2. Calling 'empty' is (for good reason) the recommended standard practice 
for checking if arrays are empty.

...Perhaps it would make sense for empty(T)(T[] a) to be moved into 
object.d, or at least somewhere it will always be implicitly included? Being 
a standard part of arrays and input ranges already effectively elevates 
"empty" to a relatively special status anyway.




More information about the Digitalmars-d mailing list