lua學習 lua及函式式程式語言

2021-08-26 04:42:50 字數 599 閱讀 7464

無論 python, ruby, 還是 erlang, lua, 這幾個比較新銳的語言,都支援函式式程式設計。

函式式程式設計到底具有哪些特點? 相對於傳統的命令式語言,其優勢在什麼地方?

函式式程式設計,有如下幾個特點:

1、 函式是第一型別。

函式像其它資料型別一樣,可以被賦值,可以當做引數,也可以當做函式的返回值。

其實, c語言的函式,實質就是一種指標型別,因此我們可以說,c語言也是支援函式式程式設計的。

2、 函式的執行結果,只與傳入的引數相關。

也就是說,只要傳入的引數不變,那麼函式的執行結果就是一定的,而不受其它條件影響。

這就要求我們,在函式內部,不要訪問全域性變數。

這點實質上是函式式程式設計的核心。

這個用術語表示,叫做「引用透明性」

3、 變數一旦被賦值,就永遠不可修改。

c 語言如何表示?

4、 惰性計算

將乙個函式繫結到乙個變數的時候,並不立刻計算; 而是在使用的時候才去計算。

5、 閉包

在其它函式內部定義的函式

6、 高階函式

使用其它函式作為引數的函式,稱為高階函式

7、 匿名函式 lambda

lua 防禦式程式設計輔助函式

防禦式程式設計是提高軟體質量技術的有益輔助手段。防禦式程式設計的主要思想是 子程式應該不因傳入錯誤資料而被破壞,哪怕是由其他子程式產生的錯誤資料。這種思想是將可能出現的錯誤造成的影響控制在有限的範圍內。以上是引用自百科的一段描述,在實際編碼過程中,我們除了判斷引數是否合法外,還會 assert 非法...

Lua基礎學習 Lua函式

函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...

lua學習 lua函式理解

詞法定界指 巢狀的函式可以訪問他外部函式中的變數。第一類值指 可以被存放在變數中,也可以存放在表中,可以作為函式的引數,還可以作為函式的返回值。的值function foo x return 2 x end這段 實際上就等效於 foo function x return 2 x end所以實際上lu...