Re: A Logical Model for Lists as Relations

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Fri, 12 May 2006 04:14:53 GMT
Message-ID: <1ZT8g.6609$A26.169229_at_ursa-nb00s0.nbnet.nb.ca>


Jay Dee wrote:

> vc wrote:
>

>> Jay Dee wrote:
>>
>>> vc wrote:
>>
>> [...]
>>
>>>> data Nat = Zero | Succ Nat
>>>
>>>
>>> Others might write `0, nat+1: nat'
>>
>> It depends on what 'others' might have meant.  If they had in mind
>> initial algebra mumbo-jumbo,  they would have been wrong.  The 'others'
>> should have rather written [zero, succ]: 1 + nat ->nat.  But the
>> initial algebra mumbo-jumbo hardly belongs here,  being just a
>> variation on the Peano theme in the case of naturals.

>
> You're making my point...

Frankly, I don't think you have a point that matters to anyone but yourself.

> [snip]
>

>> I am sorry but the 'bunch' vs. set juxtaposition just does not make any
>> obvious sense.  As soon as you talk about a 'bunch', 'herd', 'pack' of
>> 'set',  the intuition is the same: a collection of some elements.  It's
>> not important whether or not you use the pretty curly brackets.
>>
>>> The empty bunch is null and the empty set is {null}.
>>
>> See above.  As soon as you imagine an empty collection,  it does not
>> matter how you label it.  Besides, {null} is not an empty set,  {} is,
>> in the traditional math at least.

>
>>> Strings consist of items which may be any boolean, number, character,
>>> non-empty bunch, or set.  Strings are catenated with ; (semicolon).
>>> So
>>>   17; 42; A; 17
>>> is a string of length 4.
>>
>> So what's the difference between the traditional list and the 'string'
>> you've just described ?

>
> As above, ; and [] are operators, not merely punctuation, and when
> items are packaged, more operators can be defined.

Saying something is an operator without describing the operation the symbol represents is pointless and a waste of everyone's time.

>>> Items in a string can be referred to by
>>> their 0-origin ordinal position.  Ordering is defined as lexical and
>>> the < = > &c operators are defined.  Indexing?  You bet!  Slicing?
>>> Of course!
>>>
>>> Lists are to strings as sets are to bunches.
>>>   17; 42; A; 17  is a string
>>>  [17; 42; A; 17] is a list
>>
>>
>>
>> Ah,  ok. So there is no difference except the superfluos brackets ?

>
>
> In the full description there are significant differences. {} is
> an operator that constructs sets; there is a symmetric operator
> that turns them into bunches. The point is that there are more
> operators available for sets than there are bunches -- just as
> there are more operators available on lists than there are on
> strings.

So, basically, the whole thing is a circular reference conveying absolutely no meaning whatsoever. It's a list because it has an operator that makes it a list. Otherwise, it is identical to something else that is not a list. Big deal. Received on Fri May 12 2006 - 06:14:53 CEST

Original text of this message