lua學習: lua及函數語言程式設計語言
無論 python, ruby, 還是 erlang, lua, 這幾個比較新銳的語言,都支援函數語言程式設計。
函數語言程式設計到底具有哪些特點? 相對於傳統的命令式語言,其優勢在什麼地方?
函數語言程式設計,有如下幾個特點:
1、 函式是第一型別。
函式像其它資料型別一樣,可以被賦值,可以當做引數,也可以當做函式的返回值。
其實, C語言的函式,實質就是一種指標型別,因此我們可以說,C語言也是支援函數語言程式設計的。
2、 函式的執行結果,只與傳入的引數相關。
也就是說,只要傳入的引數不變,那麼函式的執行結果就是一定的,而不受其它條件影響。
這就要求我們,在函式內部,不要訪問全域性變數。
這點實質上是函數語言程式設計的核心。
這個用術語表示,叫做“引用透明性”
3、 變數一旦被賦值,就永遠不可修改。
C 語言如何表示?
4、 惰性計算
將一個函式繫結到一個變數的時候,並不立刻計算; 而是在使用的時候才去計算。
5、 閉包
在其它函式內部定義的函式
6、 高階函式
使用其它函式作為引數的函式,稱為高階函式
7、 匿名函式 lambda
函數語言程式設計到底具有哪些特點? 相對於傳統的命令式語言,其優勢在什麼地方?
函數語言程式設計,有如下幾個特點:
1、 函式是第一型別。
函式像其它資料型別一樣,可以被賦值,可以當做引數,也可以當做函式的返回值。
其實, C語言的函式,實質就是一種指標型別,因此我們可以說,C語言也是支援函數語言程式設計的。
2、 函式的執行結果,只與傳入的引數相關。
也就是說,只要傳入的引數不變,那麼函式的執行結果就是一定的,而不受其它條件影響。
這就要求我們,在函式內部,不要訪問全域性變數。
這點實質上是函數語言程式設計的核心。
這個用術語表示,叫做“引用透明性”
3、 變數一旦被賦值,就永遠不可修改。
C 語言如何表示?
4、 惰性計算
將一個函式繫結到一個變數的時候,並不立刻計算; 而是在使用的時候才去計算。
5、 閉包
在其它函式內部定義的函式
6、 高階函式
使用其它函式作為引數的函式,稱為高階函式
7、 匿名函式 lambda
相關文章
- Lua遊戲開發(三)---Lua語言學習(上)遊戲開發
- 熱更新語言--lua學習筆記筆記
- JavaScript函數語言程式設計學習JavaScript函數程式設計
- 0、Lua語言理解
- Lua遊戲開發(一)---Lua語言遊戲開發
- Haskell學習-函數語言程式設計初探Haskell函數程式設計
- 深入學習javascript函數語言程式設計JavaScript函數程式設計
- JavaScript學習(3):函數語言程式設計JavaScript函數程式設計
- C#與Lua語言學習對比一C#
- Python學習之函數語言程式設計Python函數程式設計
- 函數語言程式設計函數程式設計
- Scala 函數語言程式設計(一) 什麼是函數語言程式設計?函數程式設計
- 如何學會函數語言程式設計函數程式設計
- 函數語言程式設計,真香函數程式設計
- Java 函數語言程式設計Java函數程式設計
- javascript函數語言程式設計JavaScript函數程式設計
- 初探函數語言程式設計函數程式設計
- 函數語言程式設計初探函數程式設計
- JavaScript 函數語言程式設計JavaScript函數程式設計
- iOS鏈式程式設計及函數語言程式設計iOS程式設計函數
- C#函數語言程式設計思想及案例C#函數程式設計
- 函數語言程式設計雜談函數程式設計
- 初見函數語言程式設計函數程式設計
- RAC的函數語言程式設計函數程式設計
- JavaScript 函數語言程式設計(二)JavaScript函數程式設計
- 函數語言程式設計前菜函數程式設計
- JavaScript 函數語言程式設計(一)JavaScript函數程式設計
- JavaScript 函數語言程式設計(三)JavaScript函數程式設計
- python函數語言程式設計Python函數程式設計
- JavaScript函數語言程式設計(二)JavaScript函數程式設計
- JavaScript函數語言程式設計(一)JavaScript函數程式設計
- JavaScript函數語言程式設計(三)JavaScript函數程式設計
- 函數語言程式設計初探一函數程式設計
- iOS 與 函數語言程式設計iOS函數程式設計
- 函數語言程式設計簡介函數程式設計
- 函數語言程式設計入門函數程式設計
- C#函數語言程式設計C#函數程式設計
- Swift の 函數語言程式設計Swift函數程式設計