明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1402|回复: 5

谁能给说说mapcar函数的详细用法。谢谢

[复制链接]
发表于 2008-4-3 10:10 | 显示全部楼层 |阅读模式

我还有其他问题

1.自定义函数的返回值怎么表示

2.eval做什么用?

发表于 2008-4-3 18:22 | 显示全部楼层

语法

    (mapcar function list1 ... listn)

功能及参数

  此函数将 list1 listn 当做 function 的参数, 并返回其结果。不过 list 的数目必须符合 function 所需要的数目。

范例

    (setq a 10 b 20 c 30)

    (mapcar '1+ (list a b c))          返回       (11 21 31)

           即等于:

    (1+ a)

    (1+ b)

    (1+ c)

    此函数也可返回一个结果表。如:

(mapcar '+' (10 20 30) '(4 3 2))   返回     (14 23 32)

即为:

    (+ 10 4)

    (+ 20 3)

    (+ 30 4)

    另外, 此函数也可以与 lambda 函数合用而设定一个可被mapcar 执行的“匿名”函数。当有一些函数参数是常数或是由其他方法所提供时, 这就很有用了。例如:

    (mapcar  '(lambda (x)

    (+ x 3)

    )

    '(10 20 30)

    )

    将返回:

    (13 23 33)及:

    (mapcar  '(lambda (x y z)

    (* x (- y z))

    )

    '(5 6) '(20 30) '(14 5.0)

    )

    将返回:

    (30 150.0)

    (mapcar '1+ (list a b c))          返回       (11 21 31)

           即等于:

    (1+ a)

    (1+ b)

    (1+ c)

    此函数也可返回一个结果表。如:

(mapcar '+' (10 20 30) '(4 3 2))   返回     (14 23 32)

即为:

    (+ 10 4)

    (+ 20 3)

    (+ 30 4)

    另外, 此函数也可以与 lambda 函数合用而设定一个可被mapcar 执行的“匿名”函数。当有一些函数参数是常数或是由其他方法所提供时, 这就很有用了。例如:

    (mapcar  '(lambda (x)

    (+ x 3)

    )

    '(10 20 30)

    )

    将返回:

    (13 23 33)及:

    (mapcar  '(lambda (x y z)

    (* x (- y z))

    )

    '(5 6) '(20 30) '(14 5.0)

    )

    将返回:

    (30 150.0)

发表于 2008-4-5 14:29 | 显示全部楼层

mapcar

可以这样理解

表 l '(a b c d)

(car l) -->a -->(function a) ;;对表的第一个执行function

(mapcar 'function l)相当于 (list (function a)(function b)(function c)(function d))

;;就是对表的每个值执行function,最后还原成表

发表于 2008-4-14 23:16 | 显示全部楼层
对表中每一个元素重复做相同的动作,
 楼主| 发表于 2008-4-16 13:17 | 显示全部楼层

'的含义是不是对表进行运算啊???

发表于 2008-4-16 14:09 | 显示全部楼层
soulkiller发表于2008-4-16 13:17:00'的含义是不是对表进行运算啊???

恰恰相反

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-13 18:10 , Processed in 0.166336 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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