美思 [Common Lisp] 程式設計教學

Lisp 是第二古老的高階語言,僅次於 Fortran,而且目前仍有實際應用。現存的 Lisp 方言中,最主要的即是 Common Lisp 和 Scheme。本系列文章會介紹 Common Lisp。

本系列文章所提到的小工具存放在 cl-portablecl-yautils 專案。該專案採用 MIT 授權,有需要的讀者可自行取用。

[Common Lisp] 程式設計教學:介紹

Lisp 是資訊界上古三大神兵之一,世界第二古老的高階程式語言。這個語言在長期的演進過程中出現過許多方言,包括我們要介紹的 Common Lisp。由於 Lisp 算是冷門的語言,學習這個語言並不是為了實際面的考量。而是藉由學習的過程,體驗不同的範式,以拓展對程式設計的視野。 繼續閱讀

[Common Lisp] 程式設計教學:使用 SBCL 或 Clozure CL 建立開發環境

在本文中,我們會建立 Common Lisp 開發環境。由於 Common Lisp 本身是語言標準,沒有官方實作品,現存的 Common Lisp 實作品間都有細微的差異。最好在選定 Common Lisp 實作品後就固定使用同一種 Common Lisp 編譯器或直譯器,以避免反覆修改程式碼。 繼續閱讀

[Common Lisp] 程式設計教學:使用 Emacs 搭配 SLIME 寫 Common Lisp 程式

寫 Lisp 還是 Emacs 最對味。雖然現在使用 Emacs 的程式設計者逐漸變少,SLIME 在 Common Lisp 開發工具中算是整合得不錯的。許多 Common Lisp 的教學資源還是會提到 SLIME,所以筆者特地寫了一篇文章來介紹這個開發工具。 繼續閱讀

[Common Lisp] 程式設計教學:Roswell 入門

在閱讀 Common Lisp 的學習資料時,有時候會讀到 Roswell 這套軟體。由於 Roswell 需要額外的設置,會讓 Common Lisp 學習者感到困惑:到底 Roswell 是不是必要的?著眼於這個議題,筆者寫了一篇有關 Roswell 的文章,讓讀者了解 Roswell 的思維及使用方式。 繼續閱讀

[Common Lisp] 程式設計教學:相關的開發工具

各式各樣的開發工具在不同面向協助程式設計者開發應用程式。由於這些工具在學習程式設計的初期不會馬上用到,一開始不用急著全部學起來。以 Common Lisp 來說,先會用 QuickLisp 安裝社群函式庫就夠了。其餘的開發工具行有餘力再慢慢學習即可。 繼續閱讀

[Common Lisp] 程式設計教學:基礎概念

由於 Lisp 家族語言和主流語言差異較大,在本文中,我們會介紹 Lisp 和 Common Lisp 的基本概念,做為撰寫 Common Lisp 程式的準備。 繼續閱讀

[Common Lisp] 程式設計教學:資料型態 (Data Type)

資料型態規範電腦程式中特定資料的合法操作。本文介紹 Common Lisp 的資料型態。由於 Common Lisp 的資料型態較龐雜,先大略看一下即可,不用硬背。寫一陣子 Common Lisp 程式後自然會熟悉。 繼續閱讀

[Common Lisp] 程式設計教學:宣告和使用變數 (Variable)

在電腦程式中,資料存在於記憶體。變數本身不是資料,而是資料的標籤。電腦程式藉由變數存取資料。本文介紹在 Common Lisp 中使用變數的方式。 繼續閱讀

[Common Lisp] 程式設計教學:使用運算子 (Operator)

Lisp 家族語言不嚴格區分運算子和函式,因為 Lisp 使用前綴表示法,不需要區分兩者。像是 Common Lisp 的 + 就是函式而非運算子。本文仍會介紹一些在 Algol 家族語言視為運算子的符號,讓讀者學習幾個 Common Lisp 中實用的指令。 繼續閱讀

[Common Lisp] 程式設計教學:處理命令列參數 (Command Line Arguments)

在 Common Lisp 實作品中,取得命令列參數的方式並不一致。與其在每個命令列程式中重覆解決這項無法避開的議題,還不如將這個問題封裝成跨平台的函式,日後就以相同的方式來解決。本文介紹在常見的 Common Lisp 實作品中處理命令列參數的方式。 繼續閱讀