2016-09-30 30 views

回答

3

list[int] inc([]) = []; 
list[int] inc([int H, *int T]) = [H+1, *inc(T)]; 

注意*前面遞歸調用inc,這表示將結果重新拼接到列表中 - 因爲inc本身返回列表。另一種方法是寫此第二功能如下,它使用+爲列表concatentation:

list[int] inc([int H, *int T]) = (H+1) + inc(T); 

的更標準的方式來寫這在流氓將與列表理解,如:

list[int] inc(list[int] xs) = [ x + 1 | x <- xs ]; 

List庫還包含一個名爲mapper的函數,它允許您將函數映射到列表上;使用它,你可以這樣寫:

mapper(xs, int(int x) { return x + 1; }); 

其中xs是一個整數列表。