書展已離我愈來愈遠,相反今年的 HKOSCon 2015 ,我支持。除了講了個 Talk ,還教了個 Workshop 。我是那個 Conference 裡唯一又講 talk 又教 workshop 的人。這是因為我提交兩個 proposal 都 accept 了。
那個 Workshop 是由此文所啟發。我本來只想按照此文講一次就算,但此文沒有完全展示最重要的 functional programming 概念,故此我自行設計了另外一些練習,最少能夠完全的展示 function as data 的不同方法。
我真的很喜歡 Lisp 語言,可是此語言在港幾乎沒有同好。原因當然是 Lisp 不像 Java, C, PHP ,職場上根本用不上。就算有少數 Quant 會用到 Functional Languages ,也多是用 OCaml 。 ((其實我對 ML 系語言也很有好感))
要介紹一隻 Lisp 語言,也要千挑萬選,最後選 Racket 是有其原因。 MIT Scheme 太學術性、 Common Lisp 我不喜歡太多 def乜乜、不是人人都用 Emacs 故此不宜選 Elisp 、 Clojure 要學會先要學一大堆 tooling 如 leiningen 甚麼的, Error message 也不太好。
Racket 的 battery included 理念不錯,下載百零 M 的完全版已可以做出很多有趣的東西,最奇應是連 IDE 也包含在內。
學員下載安裝後已可即時畫圖,再從中學習 Functional Programming 理念,相當理想。
我在準備這個 Workshop 時,也覺得自己的 Lisp 技術精進不少。也許這就是 Conference Driven Learning 吧。
最近開始挑戰自己,想在 21 天之內用 Racket 寫一個 Game ,是 agar.io 的複製品。今天是第六天,基本遊戲的 Mechanic 已寫好。現在編寫電腦的 AI 部份。