2012-10-18 137 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 

可能给你一些如果你会遇到一个带括号的变量名称的问题。当然,使用它取决于你,考虑自己的警告。