2012-10-18 169 views

回答

6

不,沒有。

您也可以將其看作一個功能:它可以顯式調用函數對象並提高源代碼的可理解性。

+1

這是最好的答案。推論:如果你想寫計劃,寫計劃。 – jwmc

1

但是,你可以使用這樣的事情(不知道爲什麼你會,但鍵入的字符數是相同的,因爲它是在計劃):

(set-macro-character 
#\[ 
#'(lambda (stream char) 
    (declare (ignore char)) 
    (set-syntax-from-char #\] #\;) 
    (let ((forms (read-delimited-list #\] stream t))) 
     (set-syntax-from-char #\] #\x) 
     (append '(funcall) forms)))) 

(defun adder (n) 
    #'(lambda (x) (+ x n))) 

(format t "sum: ~s~&" [(adder 12) #x128]) ;; 308 

可能給你一些如果你會遇到一個帶括號的變量名稱的問題。當然,使用它取決於你,考慮自己的警告。