有些朋友說我的 blog 都是滿滿的組合語言, 那不是刻意為之的, 組合語言之前沒有秘密, 得把這樣的程式碼挖出來才能理解一些東西。
不過我這陣子換口味了, 滿滿的小括號應該會充斥版面一段時間。
sicp
4.1 要寫一個 Metacircular Evaluator, 簡單說就是用 lisp 來寫一個 lisp, 用到一個 read primitive procedure, 可以當成是內建的 procedure, 這是用來讀取鍵盤輸入的資料。我花了一陣子才搞懂。
read 回傳的值就當成 handle_read 的 exp 參數內容。
執行結果:
L6 輸入 ('a), read 回傳一個 list 包含 'a 和 ()。
L18 輸入 'Z, read 回傳一個 list 包含 quote 和 Z。
L33, 輸入 (+ 1 2 3) read 會傳回一個 list 包含了 + 這個 symbol, 還有 1, 2, 3。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。