poll for properties

Robert Jacques sandford at jhu.edu
Tue Jul 28 17:40:52 PDT 2009


On Tue, 28 Jul 2009 18:19:53 -0400, Steven Schveighoffer  
<schveiguy at yahoo.com> wrote:

> Please respond to this poll before reading other responses.
>
> Read the following function:
>
> void foo(Box b)
> {
>    if(b.xxx)
>      b.fill(5);
>    else
>      b.yyy;
> }
>
> Assuming you have no idea what type Box is, what of the following  
> options looks most natural for xxx in order to test to see if b has an  
> element in it?
>
> a) if(b.empty)
> b) if(b.empty())
> c) if(b.clear)
> d) if(b.clear())
>
> Answer:
> =============

e) if(b.isEmpty) or if(b.is_empty)
Otherwise
a) if(b.empty)

> =============
>
> What would you guess looks most natural for yyy in order to remove all  
> elements from b?
>
> a) b.empty;
> b) b.empty();
> c) b.clear;
> d) b.clear();
>
> Answer:
> =============

d) b.clear

> =============
>
> Which of the following functions looks incorrect?
>
> void a(Box box)
> {
>     if(box.empty())
>       box.fill(5);
>     else
>       box.clear();
> }
>
> void b(Box box)
> {
>     if(box.empty)
>       box.fill(5);
>     else
>       box.clear;
> }
>
> void c(Box box)
> {
>      if(box.clear)
>         box.fill(5);
>      else
>         box.empty;
> }
>
> void d(Box box)
> {
>      if(box.clear())
>         box.fill(5);
>      else
>         box.empty();
> }
>
>
> Answer:
> ==============
a, c, d

> ==============
>
> You read the documentation for Box, and it looks like this:
>
> /**
>   * check to see if a box is clear
>   */
>   bool clear();
>
> /**
>   * empty a box, returning true if the box had contents before emptying
>   */
>   bool empty();
>
> Now knowing what the actual meaning of clear and empty are, indicate  
> which version(s) of the function in the previous question would surprise  
> you if it compiled.
>
> Here are the functions again for reference:
>
> void a(Box box)
> {
>     if(box.empty())
>       box.fill(5);
>     else
>       box.clear();
> }
>
> void b(Box box)
> {
>     if(box.empty)
>       box.fill(5);
>     else
>       box.clear;
> }
>
> void c(Box box)
> {
>      if(box.clear)
>         box.fill(5);
>      else
>         box.empty;
> }
>
> void d(Box box)
> {
>      if(box.clear())
>         box.fill(5);
>      else
>         box.empty();
> }
>
> Answer:
> ==============

None. Though the definition of empty is a bit confusing.

> ==============
>
> Do you think the meaning of a symbol with parentheses suggests something  
> different than that same symbol without parentheses for the following  
> symbols:
>
> a) select
> b) rock
> c) keyboard
> d) elevate
>
> Answer:
> ==============

No, as there's no context. (Bad question design)

> ==============
>
> Thank you for taking the poll.  I tried to be as objective as possible,  
> if you don't think I was, please indicate why:




More information about the Digitalmars-d mailing list