Friday, March 20, 2009

事情存在的前提

最近一直在琢磨Haskell这门语言,并因为这门语言的特殊特点,让我深入思考许多一直以来困扰我的问题。

其中之一就是,对于事情存在前提的思考。

因为,我发现我面对许多事情时,常常没有将这个事情存在前提完全弄清楚,就去对事情最终形态下结论等等。但若所思考的事情存在的前提都未定义清楚的话,对事情本身的任何思考,是毫无意义的,因为你在尝试思考一个不存在的或只是你臆想的事情。完全徒劳,而无意义!

比如说,程序中的error-handling,即对程序运行错误的处理。一个程序在运行中,所产生的错误,有无限种可能。你本身处理错误的代码,也有可能产生错误。所以必须将你所思考的错误处理的前提思考清楚。比如,下面那些错误是需要处理的,而那些错误的产生是你不需要负责处理的:用户输入导致的错误,程序逻辑不严谨的错误,程序运行的外在环境(如系统调用,内存等)不可用导致的错误,程序解析或编译器导致的错误,程序运行的内在环境被破坏(如,驻留内存被修改)而导致的错误。

而之后将所思考的问题的前提建立并弄清楚之后,你才能明白在这个问题前,你能够做些什么,你不能够做些什么?如此,思考有意义前提、或者说是基础才建立起来了。

P.S. 简单点说,几乎没有事情是独立存在的,任何事情存在都有前提、假设(assumption)。所以,思考事情时,需将前提、假设弄清楚先。

P.S. 这里还另外一个问题,前提、假设的本源是什么?会是绝对的,还其实永远都是相对的了?