現行的布林值隻有 是、否 這兩種狀態。但是我認為應擴展為四種狀態("空"、是、否、"不可判斷"),呵呵,太極生陰陽,陰陽化四象。
===========================
如果一個布林值的實際值不能確定但又實際存在,那麼它的值應為 "不可判斷"
例如:"這是一棵樹嗎?" 這個問題在 "樹" 這個概念還沒有時,或者 "這" 這個指代並沒有出現時,根本無法進行判斷。“這”這個指代都沒有,無法判斷,或者"樹"是什麼都不能確定,也無法判斷。所以,布林值也處於實際值不能確定但又實際存在的狀態,所以它的狀態值應為 "不可判斷"。其實這和嬰兒剛出世一樣,你得教會他什麼是 "樹",然後又指著樹問他 "這是一棵樹嗎?" 他再會根據所學到的 "樹" 來進行判斷 "是" 還是 "否"。
===========================
如果有一個布林值將設而未設,那麼它的值應為 "空"(或者說未知),
例如: "存在外星人嗎?" 這個問題因為現在根本沒有結果,所以布林值處於將設而未設的狀態,所以值應為 "空" ,此值與 "不可判斷" 有點類似,但是它的邏輯卻與 "不可判斷" 不同,"不可判斷"值是因為判斷是比較型判斷,而"空" 不是比較型判斷,是集合歸屬性判斷,判斷的結果值屬於未知。
一個Boolean型變量,照常理來說它應隻有 "是"、"否",但是在此變量剛定義時,由於它沒有進行賦值操作,所以它也必定存在一個值"空"。
在寫程序時,還經常會遇到這種問題,一個變量未賦值即比較,結果一般都是程序出錯了,但是我們如果返回一個 "不可判斷" 值,那麼我們可以在"不可判斷"值時進行處理,或者讓程序出現布林值是 "不可判斷" 時自動尋找以前出現此問題時如何處理的,如果沒有歷史記錄則進入等待學習狀態(人工智能的一個想法),就象嬰兒不懂 "樹" 是什麼需要人去教他,程序也可以有學習功能,程序也要能問 "樹在哪裡?" "什麼是樹?",這就需要對 "不可判斷" 這個值進行處理。
"空" 這個值就純粹是程序的一個學習功能值了,當 "空" 值出現時程序應先跳出,然後置一個學習需求記錄。
==============================
僅是一種想法,怡笑大方了。
山中人 2005.07.18