日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从表达式到函数:表面的简洁

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从表达式到函数:表面的简洁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

scheme/lisp中,(基于運算元、運算符的)表達式運算是一個語法基礎,但它們被稱為函數式語言而非表達式語言。那么,它們是如何解釋函數式語言的呢?

一個lisp的函數在語法上應當書寫為如下格式:
----------------
((lambda (p1...pn) e) a1...an)
----------------

這是什么意思呢?其實,這其中的p1..pn為形式參數,而a1..an為實際參數,而lambda則是一個從天上掉下來的概念,它被用來作為一個函數標識符的命名——就好象四則運算中的x,y,z只是命名一樣。換成JavaScript的語法,就是這樣:

----------------
function lambda(p1,p2) { // ... pn
? e
}
lambda(a1,a2); // ... an
----------------

當然,javascript作為函數式語言,你也可以聲明即調用。如下:

----------------
(function lambda(p1,p2) {
? e
})(a1,a2))
----------------

所以,事實上較規范的lisp函數調用語法風格與上面的并沒有什么不同:

----------------
((lambda (p1,p2)
? e
?) a1 a2)
----------------

按照約定,e是一個或一組表達式。這里就回到上一篇文章(在這里)說的了:表達式是語言基礎:
-----------
(symbol)
-----------

在表達式、值(以及變量)、函數等基本概念上,javascript與lisp/scheme沒有什么不同。不過,后者是面向表(list,一個值或函數的序列)來處理的,而javascript則面向關聯數組(屬性包,一個“名-值”對的表)。

轉載于:https://www.cnblogs.com/java0818/archive/2007/10/08/2144517.html

總結

以上是生活随笔為你收集整理的从表达式到函数:表面的简洁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。