Re: Constructors motion
Yes, decorations are our substitute for exceptions.
So, is (Empty,n/f) a Level 2 implementation of the Level 1 concept "Not an Interval"?
Are decorations (in whatever for we agree on) a Level 1 concept or a Level 2 concept?
John is trying to maintain Level 1 as a mathematical model level? So in (say) beginning graduate level real and complex variables (or topology) classes, how do we treat something named by not existing? 1. By the concept of a domain, we try to avoid dealing with functions not being defined. 2. We don't let it happen. Who would say, "Let x be a real number, except that it isn't?"
Perhaps the Level 1 concept of an interval constructor is "Let x be an interval <blah>." It returns an interval.
It is at the programming Level 2 that we need to ask, "Yeah, but what if <blah> is not a valid interval?"
Alternatively, suppose we view the constructor as a function whose domain includes strings of characters that represent valid intervals. Doesn't our definition of functions of arguments outside their domain already specify the interval("rubbish") MUST return (Empty,n/f)?
If so, I do not think we can completely specify an interval constructor until we have agreed upon decorations. Of John's alternatives,
> I have a query however. When a constructor call "fails", should the call
> (a) return Empty, as currently written;
> (b) return a "Not an Interval" value, which must then exist at Level 1; or
> (c) not return any value, i.e. the function is simply undefined at this input argument?
At the level of mathematics, the only way a function can fail is to be called with an argument outside its domain.
I argue that the answer, absent decorations, must be (a). However, once we have decorations, the answer is (b), where the concept "Not an Interval" is represented as (Empty,n/f).
Hence, the correct answer is "(a) AND (b)".
[Excuse me, but it is my final exam season, which means I hear far too many arguments for multiple correct answers.]
George
On Dec 3, 2011, at 7:28 AM, Nate Hayes wrote:
> Hi Baker,
>
> I basically agree:
>
> In my view, for an invalid construction the bare interval is Empty and the decoration is ndf (not defined). A decorated interval constructor can therefore return (Empty,ndf) for an invalid construction.
>
> If using compressed intervals, the result may be the bare interval Empty or the bare decoration ndf, depending on a switching threshold specified by the user. If the bare decoration ndf is returned, this can be viewed as one of the many flavors of "not an interval".
>
> However, I don't think we need a "not an interval" object per-se, since bare decorations essentially play this role (see, e.g., rationale in the old Motion 8).
>
> Nate
>
>
> ----- Original Message ----- From: "Ralph Baker Kearfott" <rbk@xxxxxxxxxxxx>
> To: "Corliss, George" <george.corliss@xxxxxxxxxxxxx>
> Cc: "John Pryce" <j.d.pryce@xxxxxxxxxxxx>; "stds-1788" <stds-1788@xxxxxxxxxxxxxxxxx>
> Sent: Saturday, December 03, 2011 6:08 AM
> Subject: Re: Constructors motion
>
>
>> George (et al),
>>
>> Isn't "not-an-interval" the operator version of an "exception," at
>> least in the sense of IEEE since the original 754?
>>
>> Along these lines, my personal view is that it is OK (if other
>> considerations warrant it) to have "not an interval" in level 1,
>> since "not an interval" is a logical mathematical statement.
>>
>> Baker
>>
>> On 12/3/2011 5:41 AM, Corliss, George wrote:
>>> On Dec 3, 2011, at 3:12 AM, John Pryce wrote:
>>>
>>>> P1788 members
>>>>
>>>> In the next day or two I expect to circulate to you, after the Officers have had a chance to comment, a draft of most of the description of Level 1 (omitting the decorations material and some lesser items), asking you to vote for its acceptance as standard text.
>>>>
>>>> . . .
>>>
>>>> I have a query however. When a constructor call "fails", should the call
>>>> (a) return Empty, as currently written;
>>>> (b) return a "Not an Interval" value, which must then exist at Level 1; or
>>>> (c) not return any value, i.e. the function is simply undefined at this input argument?
>>>>
>>>> E.g. text2interval("rubbish").
>>>
>>> Hmmm. Good question.
>>>
>>> I THINK that at the LANGUAGE level, I'd like to raise an exception so I cannot ignore the error. But that's not THIS standard.
>>>
>>> Plan B: "Not an Interval". Empty is a valid interval, so returning Empty is a lie. However, I understand your hesitation to introduce "Not an Interval" at level 1.
>>>
>>> I will listen with interest to the views of others.
>>>
>>> Dr. George F. Corliss
>>> Electrical and Computer Engineering
>>> Marquette University
>>> P.O. Box 1881
>>> 1515 W. Wisconsin Ave
>>> Milwaukee WI 53201-1881 USA
>>> 414-288-6599; GasDay: 288-4400; Fax 288-5579
>>> George.Corliss@xxxxxxxxxxxxx
>>> www.eng.mu.edu/corlissg
>>>
>>
>>
>> --
>>
>> ---------------------------------------------------------------
>> Ralph Baker Kearfott, rbk@xxxxxxxxxxxxx (337) 482-5346 (fax)
>> (337) 482-5270 (work) (337) 993-1827 (home)
>> URL: http://interval.louisiana.edu/kearfott.html
>> Department of Mathematics, University of Louisiana at Lafayette
>> (Room 217 Maxim D. Doucet Hall, 1403 Johnston Street)
>> Box 4-1010, Lafayette, LA 70504-1010, USA
>> ---------------------------------------------------------------
>
George Corliss
George.Corliss@xxxxxxxxxxxxx