命令式編程 是相當困難的 。
主要的問題是 ,一旦你 把東西放到一個你希望能夠找到它的 地方 。
“ 咳 , 誰動了我 的 奶酪 ?” ,你會想 。
如果你把 一大塊 奶酪 在冰箱裏, 如果你能在放的地方找到 它,這很好 。 你 把東西放一格 地方 ,爲的是後來能夠找到它 。在 編程語言 方面 , 這 可以歸結爲 變量 的概念 。
在 命令式編程 語言 中 ,變量 是你放 東西 的地方的名稱 。
如果我說
int X;
在C語言中 , 這意味着 有一個地方 名爲x , 我可以把 一個 整數 放這兒。
X = 7 ;
意味着 把 整數7 放到名爲x的 地方 。 在 我 把 7放到我的X裏後 , 我 真的很喜歡它 永遠呆在那裏 。
“ 爲什麼 永遠待著? ”我可以 聽到 你 的 要求 。
他 說 : “ 因爲所有其他 的替代都是最糟的 ”
如果我可以 改變x , 然後我的程序 將 是 非常難以理解, x的值 可能 會 改變很多次 ,我得 瞭解 完整的歷史記錄 ,以 計算出 這個值 。
更糟的是, 在並行的 世界 會發生什麼 ,假設 幾個平行 的 進程可以 在任何時候 改變 x的值 - 這是可能發生 的 事情 - 可能 真的很難理解 。
函數式編程 語言 不會 有這個問題。 如果你說 x是 7 , 那麼 它 永遠是7 。
這 是非常好的。
相信我。
ກ