C語言實現的lisp解析器介紹,c語言lisp解析
最近,因為Perl而學習函數式編程, 再進一步學習lisp, 真是一學習就發現自己的渺小。
無意中找到了一個非常簡單的C語言版的, lisp解析器。
代碼很短, 卻很見功底, 漲姿勢了。附帶還學習了記憶體回收, 真是收穫不少!
http://piumarta.com/software/lysp/
但願區域網路能訪問。
CAD lisp程式注釋解析
(defun c:try (/ p) ;; 定義命令 try 其中有一個參數p
(setq p (getpoint "from point: ")) ;;獲得p值,根據一個提示 from point: 使用者點擊位置 獲得點 p(包含座標值)
(command "PLINE") ;; 調用命令 PLINE ,畫線命令
(while p ;;迴圈語句,p 點不為空白,即每次都點擊一個位置點
(command p) ;;PLINE命令後的一個點,即畫線命令後指定一個點進行畫線
(setq p (getpoint "to point: ")) ;; 提示資訊=to point: ,提醒使用者選取畫線到達點
)
(command);; 空命令退出
)
;;此lisp程式是註冊一個命令try,實現根據使用者連續點擊座標畫線的功能,直到使用者不再點擊為止
C語言的程式 換成FORTRAN與Lisp 寫出來
(defun c:aa()
(setq m (getint "\n請輸入m:>"))
(setq n (fac m))
(princ (strcat "\nm=" (rtos m 2 0) " n=" (rtos n 2 0)))
(prin1)
)
(defun fac(a)
(if (or (= a 0) (= a 1))
(setq c 1)
(setq c (* a (fac (- a 1))))
)
)
我只會lisp,經我測試,這個階乘的程式可用。希望能給我分。如用不了可以找我