function 函数的用法?
帮助文档中,function函数的用法是:(function symbol | lambda-expr),对于lambda,大家都很熟悉了,但是对于symbol,却什么说明都没有,我试了我能想到的,都没成功,好象论坛也没这方面的例子,不知道有哪位朋友有这方面的实践经验啊??? 说实在的,没有这样用过,不过可以想象:(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30 40 45 50 60))
(mapcar (function tan) '(10 20 30 40 45 50 60))
第三句和第二句都是调用函数名(symbol)tan,但第三句可以对tan函数进行跟踪调试。 ll_j 发表于 2014-7-2 19:51
说实在的,没有这样用过,不过可以想象:
(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30...
我一直认为第2句第3句—样的呢,而且第2句看起来更简洁 ll_j 发表于 2014-7-2 19:51 static/image/common/back.gif
说实在的,没有这样用过,不过可以想象:
(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30...
解释器直接把function当quote处理了,我现在也只能理解成quote了。 nzl1116 发表于 2014-7-2 22:03 static/image/common/back.gif
解释器直接把function当quote处理了,我现在也只能理解成quote了。
看帮助文件,似乎是内部优化问题,我遇到过使用quote无法调试子函数的问题,不过对前面的例子中的子函数还是调试的,不知问题是在哪里。
我自己一般也是使用quote的,G版使用function比较多,他应该理解的更深刻一些,希望他能来说一说。 quote是不对代码语法解释,直接引用
function可以在运行时调试代码 循环 做个记号,备查
页:
[1]