lisp?
1.作為動態語言,提供了命令行交互和腳本執行兩種運行方式。現在在寫lua和C/C++的接口。(這是一個運行在虛擬機上的偽虛擬機)2.變量類型:number、string、list、boolean、function。list其實就是lua的table,去掉了hash表部分,只保留數組部分。
3.語法上對 lisp的cda、cdr進行了模擬…提供了’作為quote的語法糖
4.對于轉義字符全部用%實現了,比如%n%t%a等
5.作用域:可定義全局globe或者局部變量local,lua對此非常好實現。
6.if條件分支、for遍歷列表、while循環:是的,由于lua對遞歸次數有限制,我們不能夠像普通的函數式語言那樣用遞歸來代替循環,因此提供了面向過程的范式
7.函數的定義、調用,由于是函數式語言,所以函數可以作為函數參數,可以被函數返回,是第一類變量
8.對lua5.3中的幾個標準庫:math、os、io、table、string 進行了封裝,部分函數進行了修改。因此可以進行數學運算、時間操作、文件文件夾操作、輸入輸出及其重定向、列表的刪增減改、字符串的查找刪除正則表達式等。
9.提供了一個小小的標準庫,定義了一些個人覺得常用的操作。
10.實現了python的高階函數:map、filter、reduce、sort、偏函數等。將函數作為參數傳入
11.模塊擴展:你可以支持動態的導入.lisp文件,意味著可以按照模塊的方法來組織程序。
12.可以像C/C++支持lua那樣,利用lua甚至C/C++來為lisp提供庫。
13.可以有注釋