如何學習 Factor

從零開始上手 Factor 的入門概觀


有許多很棒的資源可以學習 Factor。

  • Andrea Ferretti 的 Factor 教學是一份詳盡的語言導覽,從堆疊基礎一路進展到超程式設計、分散式運算,以及使用 Furnace 進行網頁開發。

  • Factor in 2022 是 John Benediktsson 和 Doug Coleman 在 2022 年的演講,帶你遊覽這門語言,以及現今使用它的模樣。

  • Leo Brodie 的Thinking Forth是 Forth 設計哲學與思維習慣的經典之作。Factor 不是 Forth,但它繼承了串接式、堆疊導向的思維方式,而 Brodie 的書是認識那種思考方式的最佳入門。

  • Factor 的說明文件非常豐富,而且內容驚人地完整。它有離線版本,可以直接在圖形介面的 Listener 或命令列中搜尋,同樣可搜尋的文件也有線上版本。

  • Björn Lindqvist 的 playground-factor是一個充滿有趣技巧與訣竅的儲存庫。身為 Factor 開發者之一的 Björn 不太常更新它,而且它還是進行中的作品(其中許多內容正被移至 GitHub Wiki),但裡面的東西仍然非常酷。

  • Learn X in Y Minutes有一份 Factor 教學。它稱不上詳盡,但很適合當參考,也足以帶你上手。

  • Rosetta Code:Factor是一個程式語言文選網站的一部分。在數百種其他語言之中,它收錄了許多問題的 Factor 解法,你可以拿來和自己已經熟悉的語言互相比較,是學習解法時很好的參考與起點。

最後,也許也是最不重要的:

  • Stack Overflow。這裡的社群不大(好吧,大約三個人,包括在下我),但如果你真的、真的卡住了,在那裡提問,一定會有人幫你。

  • 郵件論壇。在這裡,你可以詢問任何與 Factor 相關的問題,會有協作者熱心回覆。

  • Factor 有 IRC 頻道!快來加入我們吧,我們很樂意幫忙喔。

  • 學習並閱讀關於 Joy、Forth 以及串接式/堆疊式程式設計的一般知識。

  • 學習並閱讀關於 Common Lisp Object System 的內容。CLOS 普遍被認為是世界上最先進、最具創新性的物件模型,而 Factor 的物件模型深受它啟發,也大量以它為基礎。

  • 在許多方面,Factor 都是一門 Lisp。它是後綴式、無點式、函式式,而且裡裡外外都反過來、看起來很滑稽的 Lisp,但許多理念是相同的。因此,學習一門 Lisp 可能會很有幫助,最好是函式和變數共用命名空間的 Lisp-1(因為在函式式程式設計中,函式就是值)。在下我誠心推薦 Scheme,或者,想要更現代、更好用的東西,可以選擇 Racket,它是 Scheme 的後裔。

最後,Factor 幾乎完全是用 Factor 寫成的。所以,去讀原始碼吧,並在文件中搜尋你不認識的詞。