in reply to Re^2: How to name a subclass of an object class?
in thread How to name a subclass of an object class?

Your "is a" shouldn't be. By your description, a list isn't ever a number. You just want a to treat it like a sum. Then provide a ->sum property.

⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊

  • Comment on Re^3: How to name a subclass of an object class?

Replies are listed 'Best First'.
Re^4: How to name a subclass of an object class?
by muba (Priest) on Mar 27, 2006 at 01:09 UTC
    Actually, you're right.

    However, both List and Number are values (I aim for the Stating The Obvious Awards) on which a number of equivalent operations can be performedm such as add, substract, multiply, divide). Would it make sense to have a common superclass for List and Number then?

    If yes, then let's assume this superclass is called Value.
    Would I name the other classes Value::Number and Value::List, or do I just name the three classes Value, Number, and List?

      Actually Number sounds like a special case of List to me - a list with one entry. Perhaps you should do away with Number entirely, at least as a Public entity?


      DWIM is Perl's answer to Gödel

      No. You're being excessively generic. It isn't immediately obvious what "add" means in connection with a list. My first interpretation that "add" would be applied once to each element in the list and thus return a new list, transformed. That is, map() and +. So why are you reimplementing basic things like arrays anyway? Usually, if a person wanted a sum from a list they'd say it in an obvious way like sum( @bunch_o_numbers ) (List::Util::sum) or similar. This "Value" parent class or more commonly, "Object" is a common pitfall and never, really a good idea. That is, unless you're doing something gemane to http://lambda-the-ultimate.org. Then write the paper on it and publish it for all of us to read.

      ⠤⠤ ⠙⠊⠕⠞⠁⠇⠑⠧⠊