當前位置: 華文問答 > 數位

什麽是函數語言程式設計思維?

2015-08-20數位

函數語言程式設計與指令式編程最大的不同其實在於:

函數語言程式設計關心數據的對映,指令式編程關心解決問題的步驟

這裏的對映就是數學上「函式」的概念——一種東西和另一種東西之間的對應關系。

這也是為什麽「函數語言程式設計」叫做「函式」式編程。

這是什麽意思呢?

假如,現在你來到 google 面試,面試官讓你把二元樹映像反轉一下(大霧

幾乎不假思索的,就可以寫出這樣的 Python 程式碼:

def invertTree ( root ): if root is None : return None root . left , root . right = invertTree ( root . right ), invertTree ( root . left ) return root

好了,現在停下來看看這段程式碼究竟代表著什麽——

它的含義是:首先判斷節點是否為空;然後翻轉左樹;然後翻轉右樹;最後左右互換。

這就是指令式編程——你要做什麽事情,你得把達到目的的步驟詳細的描述出來,然後交給機器去執行。

這也正是命令