明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2388|回复: 7

[已解答] function 函数的用法?

[复制链接]
发表于 2014-7-2 19:22 | 显示全部楼层 |阅读模式
帮助文档中,function函数的用法是:(function symbol | lambda-expr),对于lambda,大家都很熟悉了,但是对于symbol,却什么说明都没有,我试了我能想到的,都没成功,好象论坛也没这方面的例子,不知道有哪位朋友有这方面的实践经验啊???
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-7-2 19:51 | 显示全部楼层
说实在的,没有这样用过,不过可以想象:
(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函数进行跟踪调试。

评分

参与人数 1明经币 +1 收起 理由
nzl1116 + 1 你的回复把我引到trace上面去了

查看全部评分

发表于 2014-7-2 21:47 来自手机 | 显示全部楼层
ll_j 发表于 2014-7-2 19:51
说实在的,没有这样用过,不过可以想象:
(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30  ...

我一直认为第2句第3句—样的呢,而且第2句看起来更简洁
 楼主| 发表于 2014-7-2 22:03 | 显示全部楼层
ll_j 发表于 2014-7-2 19:51
说实在的,没有这样用过,不过可以想象:
(defun tan(x) (/ (sin x) (cos x)))
(mapcar 'tan '(10 20 30  ...

解释器直接把function当quote处理了,我现在也只能理解成quote了。
发表于 2014-7-3 08:09 | 显示全部楼层
nzl1116 发表于 2014-7-2 22:03
解释器直接把function当quote处理了,我现在也只能理解成quote了。

看帮助文件,似乎是内部优化问题,我遇到过使用quote无法调试子函数的问题,不过对前面的例子中的子函数还是调试的,不知问题是在哪里。
我自己一般也是使用quote的,G版使用function比较多,他应该理解的更深刻一些,希望他能来说一说。
发表于 2014-7-3 09:21 | 显示全部楼层
quote是不对代码语法解释,直接引用
function可以在运行时调试代码

评分

参与人数 1明经币 +1 收起 理由
nzl1116 + 1 很给力!

查看全部评分

发表于 2014-7-13 15:05 | 显示全部楼层
循环
发表于 2020-2-18 11:35 | 显示全部楼层
做个记号,备查
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-27 00:34 , Processed in 0.576123 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表