js 語言精髓筆記9 函式式語言特徵

2022-03-11 01:16:21 字數 921 閱讀 1004

形式化運算系統的研究:

後出現函式式語言的鼻祖:lisp;

函式式語言

結果:大多數人都在使用基於馮諾依曼體系的命令式語言,但為了獲得特別的計算能力或者程式設計特徵,這些語言也在邏輯層實現一種適宜於函式式語言正規化的環境。一方面產生了如js這樣多正規化語言,另一方面產生了如.net,jvm的能夠進行某些函式式計算的虛擬機器環境;

函式式語言中的函式(性質)

函式內的運算對函式外無***:(依賴開發人員的程式設計習慣)

//不修改全域性變數,且不在函式內修改物件和陣列成員;這些成員應該由物件方法而非物件系統外的其他函式來修改;這裡可以綜合考慮物件系統的介面特性;

從表示式語言到函式式語言:

表示式語言:因為運算都是產生值型別的結果,且所有的邏輯語句結構都可以被消滅;所以系統的結果必然是值,並且可以通過一些列的運算來得到這一結果;

消滅語句:

函式式語言:

js中的函式:

非惰性求值; //對函式來說,如果乙個引數是需要用到時才會完成求值,就是惰性求值,而js的函式是非惰性求值

函式是第一型的; //由於此特徵,js函式即可以做運算元,也可以做運算子;

函式是乙個值; //基於物件來講,js中所有東西都是物件;函式式語言來講,所有東西都是值;

可遍歷的呼叫棧:

//乙個靜態未呼叫的函式只是乙個值,當它(f)呼叫時,系統將正在執行的函式(a)入棧,並保留函式a的執行指標;在函式f執行完之後,函式a出棧並繼續執行指標後的**;

function f() 

function a()

caller:  

js 語言精髓筆記11 動態語言特性 1

語言 程式最終被表達為資料 結構 和邏輯 演算法 命令式和說明式 函式式語言分別從這兩方面分類 動態 在語言陳述時無法確定,必須在計算機執行時才能確定語言關係 js是完全動態語言,導致其不確定性一般包括 起源 動態執行系統 動態執行 動態執行系統分別動態載入和動態執行 js中動態執行主要是eval ...

函式式語言

1.函式式語言 1977年,john backus提出了函式式程式語言,這種語言以非馮諾伊曼式的計算機為設計而背景,所以我們又稱這樣的函式式程式語言稱為非馮諾伊曼式語言。函式式程式設計,又稱泛函程式設計,是一種程式設計范型,它將電腦運算視為數學上的函式計算,並且避免狀態以及可變資料。函式程式語言最重...

go語言學習筆記 9 函式

格式 func函式名 引數列表 返回值列表 引數列表 引數列 式類似變數宣告,但不需要var關鍵字 age int,name string i1,i2 int 返回值列表 1 基本格式同引數列表 2 返回值可以沒有變數名 3 當只有乙個返回值,且返回值變數未命名時,或沒有返回值時,括號可省略 多返回...