On Thu, Feb 21, 2013 at 9:48 PM, Andrew Douglas Pitonyak <and...@pitonyak.org> wrote: > > On 02/21/2013 09:20 PM, Rob Weir wrote: >> >> On Thu, Feb 21, 2013 at 9:12 PM, Andrew Douglas Pitonyak >> <and...@pitonyak.org> wrote: >>> >>> During the long painful discussion of 0^0, there was mention of creating >>> a >>> compatibility function for POWER(x,y) to match the behavior in Excel. My >>> understanding of how this would work is as follows. >>> >>> 1. Create another function such as POWER.OTHER(x,y) that behaves as >>> desired. >>> 2. When an Excel file is read, every instance of POWER is replaced with >>> POWER.OTHER. >>> 3. When an Excel file is written, every instance of POWER.OTHER is >>> converted >>> back to POWER. >>> >> A simpler solution, if you already know that you are reading an Excel >> file, is to keep the function name, but change the behavior to mimic >> what Excel does. So a compatibility mode rather than a different >> function. If we do that, then that would eliminate most of the >> complexities that you mention below. >> >> -Rob > > There are certainly many nice things that go along with this idea; for > example, you can set a configuration option to behave as some product, and > then simply modify each affected function to slightly modify the behavior. > This allows anyone to mimic the behavior at will. This is also a much larger > change. > > My question was prompted by a comment made on the larger thread that > proposed this as a workable solution. If memory serves me correctly, Libre > has implemented a few alternate functions, but I do not remember the > context. >
Microsoft Excel 2013 has done something like this as well. For example, they have a CEILING() function (which they've had for a long time) as well as a new ISO.CELING() function that matches the behavior defined in the OOXML specification. (There is a crazy story for why these differ, but it would take too long to explain. Let's just say it was a long week in Geneva, and stuff happened) If you are familiar with Microsoft API's you see this matches their general perspective. They try not to change an API, but if a change is needed they tend to give it a new name. -Rob > > -- > Andrew Pitonyak > My Macro Document: http://www.pitonyak.org/AndrewMacro.odt > Info: http://www.pitonyak.org/oo.php >