iT邦幫忙

鐵人檔案

2018 iT 邦幫忙鐵人賽
回列表
Software Development

每天 Racket 3 分鐘 系列

Racket 是一門基於 Scheme 的程式語言,具有 Scheme 的語法特性,以及豐富的 Lib。學習 Racket 是了解 Scheme 最好的門路之一。本系列會搭配 Scheme 語言與其規格書,來說明 Racket/Scheme 這個特別的生態系。

參賽天數 4 天 | 共 17 篇文章 | 7 人訂閱 訂閱系列文 RSS系列文
DAY 1

(define day-00 "以史為鏡,可以知興替 — 從 Lisp 到 Racket")

這一系列,是以一個相當有歷史典故的程式語言家族為主角,從它的故事,到語言特性,到實務應用。每一篇盡量控制在各位三分鐘以內可以閱讀完畢的篇幅。 我不是程式語言專家...

2017-12-04 ‧ 由 cchuang0425 分享
DAY 2

(define day-01 "起手式 — Racket 安裝與編輯環境")

今天份量不多,但我們明天就會開始進入程式內容。 1. Racket 與它的編輯環境 Racket 可以說是 Scheme 實作中,生態系最完整的一環。甚至具有相...

2017-12-05 ‧ 由 cchuang0425 分享
DAY 3

(define day-02 "Racket 不會咬人 — define and REPL")

度過了兩天沒有程式碼的內容,從這一篇開始,我們寫下人生第一個 s 表示式。 1. 來吧,寫下你的第一個 Racket 程式 我們先叫出 DrRacket,然後在...

2017-12-06 ‧ 由 cchuang0425 分享
DAY 4

(define day-0.30000000000000004 (+ 0.1 0.2)) ;; Racket 的數值系統

1. Scheme 規格書說了什麼 Racket 的數值系統,核心架構仍然是以 Scheme 的為基礎。在 Scheme 的規格書 [1] 裡頭,列舉了以下的數...

2017-12-07 ‧ 由 cchuang0425 分享
DAY 4

(define day-04 ""Hello world!" 怎麼這時候才出現!— Racket 的字串型態")

不小心一忙,就錯過了發文時間,但我還是會繼續把內容補完。 1. 文字不簡單 Racket 與 Scheme 雖然是很老牌的語言,然而它們對 Unicode...

2017-12-09 ‧ 由 cchuang0425 分享
DAY 4

(if day-05 "來杯咖啡談是非 — Racket 的其他型態" (void))

1. 是非無關對錯 Racket 的 true 與 false 不若 Java、C# 與 Python,是以完整的字來表示,從字元那節開始,我們已經開始接觸 R...

2017-12-09 ‧ 由 cchuang0425 分享
DAY 4

(display "λf.(λx.f (x x)) (λx.f (x x)) — day-06 — Racket 的 Function 與 Lambda — 1")

1. 從圖靈的老師談起 他是圖靈在普林斯頓時的老師,是當時一位頂尖的數學家與計算理論專家。當一個文化進入另一個時,首先需要做的是將原有的語彙翻譯過去。然而在台灣...

2017-12-10 ‧ 由 cchuang0425 分享
DAY 4

(list 'day-07 "組織你的資料 — Racket 基礎資料結構:Pair、List 與 Vector")

1. Lisp 之所以是 Lisp Lisp 的全名,稱為 List Processor,顧名思義,在 Lisp 裡頭,最常見的資料結構就是 List。其實在...

2017-12-11 ‧ 由 cchuang0425 分享
DAY 4

(cond ((not (day-08?)) 'all-right) (else "我若不在寫 Racket,就在去寫 Racket 的路上 — Racket 的控制結構"))

1. 最古老的決策結構 如同我們在前文所見的 if,if 的確是一個最古老的決策結構,幾乎有程式語言的時代,就有了它。而它的使用需要注意什麼呢?在 Racket...

2017-12-12 ‧ 由 cchuang0425 分享
DAY 4

(let ([day 9]) (display "Let it be! — Racket 的 Local Binding"))

1. 關起門來寫程式 在 Racket 裡頭,有種特殊的函式,可以讓你劃定一個區塊,執行完之後就煙消雲散。這是什麼呢?其實不只在 Racket,早在 Lisp,...

2017-12-13 ‧ 由 cchuang0425 分享