RE: 'Unknown' and three-valued logic (was: Example where Euphoria ...)
- Posted by rforno at tutopia.com Nov 29, 2002
- 521 views
Euler: It seems to me you got the erroneous impression that I'm advocating for 3-valued logic. Not at all. I was only providing Rom with arguments against it, on his request. Oracle (I don't know if this is so for other data-base systems) has a three-valued logic, and operations on it. Some years ago I worked with this feature, but never found a practical use for it. Be good... ----- Original Message ----- From: Euler German <efgerman at myrealbox.com> Subject: RE: 'Unknown' and three-valued logic (was: Example where Euphoria ...) > > On 27 Nov 2002, at 18:28, rforno at tutopia.com wrote: > > > > > For me, the main arguments against 3-valued logic are, in decreasing order > > of importance: > > 1) It appears that there are few, if any, useful applications using this > > kind of logic. > > 2) These possible applications can be handled by ad-hoc routines and data > > types. For example, you may select 'F', 'T' and 'N' to represent the 3 > > values, and write 'not', 'and', 'or', 'xor', 'implication', etc. routines to > > compute the results. > > 3) There is, to my knowledge, no universal consensus about the results of > > operations including 'nil', as the recent discussions in this list have > > shown. > > 4) For the application analyst and the programmer, it is much more difficult > > thinking in terms of 3 values and the respective operations. > > 5) It is difficult to draw useful conclusions or actions from the results in > > 3-valued logic. > > 6) While operations on strict Boolean logic are implemented very > > efficiently, one cannot say the same about 3-valued logic. Especially > > operations like and_bits, or_bits, etc., will suffer from severe > > inefficiency. > > 7) If, as suggested, a bit is reserved for 'nil' in each data item, then the > > representation ceases to be standard, and difficulties regarding > > compatibility will arise. > > > > Regarding the examples, I think that they should be provided by the one > > proposing this logic. Up to now, the examples provided by Rom have been not > > successful, in my view. The only example that can show a small benefit was > > (once more in my view) the very general one about its use in data bases for > > non-existing records or fields, particularly under Oracle, but even then I > > think it is only of theoretical importance, since I could not find a > > convincing practical use for it. > > Best wishes. > > > I never had need of a 'third' logical boolean state. In fact, I don't > believe it even exists, except as an abstraction. Note that this is > just my opinion. The only other place where I found 'nil' referenced > was on uninitialized variables (as in Lua). > > Taking Lua as example, variables have no need to be declared as string, > number, table, etc. until it receives a 'value' of string, number, > table, etc. This way, when created, any variable has a 'nil' (from > Latin nihil - nothing) content. Lua also uses nil as boolean value but > meaning FALSE. A boolean result in Lua can be 1 (TRUE) or nil (FALSE). > There's no third stage. As in Euphoria, all variables must be declared > and initialized before its use, there's no need of a 'nil' value, IMHO. > > Kind regards, > > -- Euler German > > > >