nzl1116 发表于 2014-7-2 19:22:36

function 函数的用法?

帮助文档中,function函数的用法是:(function symbol | lambda-expr),对于lambda,大家都很熟悉了,但是对于symbol,却什么说明都没有,我试了我能想到的,都没成功,好象论坛也没这方面的例子,不知道有哪位朋友有这方面的实践经验啊???

ll_j 发表于 2014-7-2 19:51:24

说实在的,没有这样用过,不过可以想象:
(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函数进行跟踪调试。

自贡黄明儒 发表于 2014-7-2 21:47:37

ll_j 发表于 2014-7-2 19:51
说实在的,没有这样用过,不过可以想象:
(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30...

我一直认为第2句第3句—样的呢,而且第2句看起来更简洁

nzl1116 发表于 2014-7-2 22:03:02

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了。

ll_j 发表于 2014-7-3 08:09:40

nzl1116 发表于 2014-7-2 22:03 static/image/common/back.gif
解释器直接把function当quote处理了,我现在也只能理解成quote了。

看帮助文件,似乎是内部优化问题,我遇到过使用quote无法调试子函数的问题,不过对前面的例子中的子函数还是调试的,不知问题是在哪里。
我自己一般也是使用quote的,G版使用function比较多,他应该理解的更深刻一些,希望他能来说一说。

ZZXXQQ 发表于 2014-7-3 09:21:26

quote是不对代码语法解释,直接引用
function可以在运行时调试代码

邹锋 发表于 2014-7-13 15:05:50

循环

baitang36 发表于 2020-2-18 11:35:00

做个记号,备查
页: [1]
查看完整版本: function 函数的用法?