函數語言程式設計與指令式編程最大的不同其實在於:
函數語言程式設計關心數據的對映,指令式編程關心解決問題的步驟
這裏的對映就是數學上「函數」的概念——一種東西和另一種東西之間的對應關系。
這也是為什麽「函數語言程式設計」叫做「函數」式編程。
這是什麽意思呢?
假如,現在你來到 google 面試,面試官讓你把二叉樹映像反轉一下(大霧
幾乎不假思索的,就可以寫出這樣的 Python 程式碼:
def
invertTree
(
root
):
if
root
is
None
:
return
None
root
.
left
,
root
.
right
=
invertTree
(
root
.
right
),
invertTree
(
root
.
left
)
return
root
好了,現在停下來看看這段程式碼究竟代表著什麽——
它的含義是:首先判斷節點是否為空;然後翻轉左樹;然後翻轉右樹;最後左右互換。
這就是指令式編程——你要做什麽事情,你得把達到目的的步驟詳細的描述出來,然後交給機器去執行。
這也正是命令