0
要用某些參數調用某個函數,我們可以簡單地使用(funcname arg1 arg2 ...)
或(apply funcname '(arg1 arg2 ...))
。兩種方式有什麼區別?謝謝。圓括號和`apply`之間有什麼區別?
要用某些參數調用某個函數,我們可以簡單地使用(funcname arg1 arg2 ...)
或(apply funcname '(arg1 arg2 ...))
。兩種方式有什麼區別?謝謝。圓括號和`apply`之間有什麼區別?
區別在於apply
的參數是以列表形式給出的。所以如果你已經有了一些東西的列表,你可以用(apply f my-list)
來從列表中調用f
。
謝謝。順便說一下,如何解開一個列表,以便給定的列表可以用作圓括號內的函數的參數? – Tim
@tim通過使用'apply'來代替。這就是它存在的原因。在Ruby或Python中使用'f(* arglist)'的地方,你可以在Scheme中使用'(apply f arglist)'。 – sepp2k
謝謝。我明白。只是好奇如何解開清單? – Tim