RE: 'Unknown' and three-valued logic (was: Example where Euphoria ...)
- Posted by Euler German <efgerman at myrealbox.com> Nov 28, 2002
- 535 views
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