Scheme 中的 quasiquote, unquote, unquote-splicing

先談談 Scheme 中的 Quote 每次我向人介紹 Scheme 的時候,我總是喜歡跟人說 Scheme 語法只有一個: (函數名稱 參數1 參數2 參數n...) 在 scheme 如果不是數字或是文字,則會被當成 symbol ,而 symbol 簡言就是被當成某個內容的名稱,像是函數的命名、變數的命名都被稱為 symbol。 只要遇到 »

一個二進位方法判斷是否為 2 的次方數

今天看了一個問題,是叫你寫個程式判斷一個數字 n 是否為 2 的次方。 起初一個很簡單的概念就是用个迴圈,從 1 開始不斷的乘 2 ,如果這個數字跟叫你丟進來測試的數字 n 相同,那就是 2 的次方了。 大概長是下面這個樣子: int det_is_power_by_2(unsigned n) »

關於 python 中的 self

在 python 物件方法中,如果存取一個 class 或者 instance 中的變數, 那麼在物件方法宣告參數時,就必須要有一個 self 當作第一個參數。 大約長得像下面這樣: class Person: def __init__(self, name, age): self.name = name self.age = age »

lambda 與邱奇數

lambda 這幾天研究了一下 lambda 之後,發現 lambda 根本不只是匿名的函數這麼簡單而已。在很早之前邱奇就很想用數學表達世界上所有的事情。而當中為為了設計一套方法來判斷什麼樣的東西是可以拿來被計算的,lambda 就被獨立出來發展了。 而 lambda 運算其實包含的元素其實很簡單,只有包含兩個東西,就是變數跟函數而已。 先講一下如何表示一個 lambda 表達式 ( lambda term ),接著舉幾個例子就能很快看懂這套數學系統了。 lambda 表達式的規則(以下用 t »

python 的 iterator

for 迴圈跟 iterator (可走訪物件、迭代器) 很多人在初學 python 的時候,都會搞不懂 for 迴圈到底是在做些什麼 初學 python 應該會看到這樣的 for 迴圈 for i in range(10): print(i) i 從 0 »