找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2313|回复: 17

[已解决] lambda 还有不明白之处

[复制链接]
发表于 2014-12-15 14:25:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. (setq t1 '(3 5 6)
  2.        t2 '(7 8 9))
  3. (setq tt (append t1 t2))
  4. (substr (apply 'strcat (mapcar '(lambda (x)(strcat "," x)) (mapcar 'rtos tt)))2)
  5. ;这样成功返回了"3,5,6,7,8,9"
  6. ;如果我不想(substr (apply 'strcat这样弄
  7. ;(apply '这个地方直接用一个无名函数,返回"3,5,6,7,8,9" 要怎么弄

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-12-15 15:03:12 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2014-12-15 15:07 编辑

理解为没有名字的函数就可以了http://bbs.xdcad.net/thread-675789-2-1.html 30楼

点评

黄大师,真还不会这个函数,去学习下了,感谢  详情 回复 发表于 2014-12-15 16:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2014-12-15 15:31:48 | 显示全部楼层
(mapcar 'vl-princ-to-string (append t1 t2))

点评

学习了,谢谢  详情 回复 发表于 2014-12-15 16:22
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-12-15 15:34:12 | 显示全部楼层
(setq y nil)
(apply 'strcat
        (cdr
                (foreach x(reverse(mapcar 'vl-princ-to-string '(3 5 6 7 8 9)))
                        (setq y(cons ","(cons x y)))
                )
        )
)

点评

将表的元素顺序倒置后返回(reverse[/backcolor] 起到什么作用了,为什么要用它  详情 回复 发表于 2014-12-15 16:36
学习了,谢谢  详情 回复 发表于 2014-12-15 16:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-15 16:21:30 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-12-15 15:03
理解为没有名字的函数就可以了http://bbs.xdcad.net/thread-675789-2-1.html 30楼

黄大师,真还不会这个函数,去学习下了,感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-15 16:22:54 | 显示全部楼层
Lispboy 发表于 2014-12-15 15:31
(mapcar 'vl-princ-to-string (append t1 t2))

学习了,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-15 16:23:27 | 显示全部楼层
wzg356 发表于 2014-12-15 15:34
(setq y nil)
(apply 'strcat
        (cdr

学习了,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-15 16:36:57 | 显示全部楼层
wzg356 发表于 2014-12-15 15:34
(setq y nil)
(apply 'strcat
        (cdr

将表的元素顺序倒置后返回
(reverse 起到什么作用了,为什么要用它

点评

比如表: '("1" "2" "3" "4" "5" "6") reverse后, '("6" "5" "4" "3" "2" "1") 然后循环CONS,变成 '("6" "," "5" "," "4" "," "3" "," "2" "," "1" ",") 在reverse后cdr,就把第一个,去掉了。然后 strcat  详情 回复 发表于 2014-12-15 16:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2014-12-15 16:43:17 | 显示全部楼层
amwkto2011 发表于 2014-12-15 16:36
将表的元素顺序倒置后返回(reverse 起到什么作用了,为什么要用它

比如表: '("1" "2" "3" "4" "5" "6")
reverse后, '("6" "5" "4" "3" "2" "1")

然后循环CONS,变成  '("6" "," "5" "," "4" "," "3" "," "2" "," "1" ",")

在reverse后cdr,就把第一个,去掉了。然后 strcat,明白了吗?

点评

原来是这样哦,明白了,再次谢谢各位指点了  详情 回复 发表于 2014-12-15 16:50
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-15 16:50:01 | 显示全部楼层
Lispboy 发表于 2014-12-15 16:43
比如表: '("1" "2" "3" "4" "5" "6")
reverse后, '("6" "5" "4" "3" "2" "1")

原来是这样哦,明白了,再次谢谢各位指点了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-12-16 01:10:03 | 显示全部楼层
  1. (setq t1 '(3 5 6)
  2.       t2 '(7 8 9)
  3. )
  4. (setq tt (append t1 t2))
  5. (substr        (eval (cons 'strcat
  6.                (mapcar '(lambda (x) (strcat "," x)) (mapcar 'rtos tt)))
  7.         )
  8.         2
  9. )

点评

谢谢了,又学会了一招  详情 回复 发表于 2014-12-16 10:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-16 10:03:03 | 显示全部楼层

谢谢了,又学会了一招
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-12-16 11:06:23 | 显示全部楼层
本帖最后由 wzg356 于 2014-12-16 11:11 编辑

用vl-princ-to-string好一点,把表、逗号设成参数,defun定义函数名就成通用函数:表转为按指定字符分割的字符串。

点评

大师,这个有点不会了,能示例一个不,感谢了  详情 回复 发表于 2014-12-16 17:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-16 17:19:33 | 显示全部楼层
wzg356 发表于 2014-12-16 11:06
用vl-princ-to-string好一点,把表、逗号设成参数,defun定义函数名就成通用函数:表转为按指定字符分割的 ...

大师,这个有点不会了,能示例一个不,感谢了

点评

(;;;单层表lst的元素按指定分隔符rr连接呈一个字符串 (defun list2str (lst rr / y x) (setq y nil) (apply 'strcat (cdr (foreach x(reverse(mapcar 'vl-princ-to-string lst))  详情 回复 发表于 2014-12-16 17:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-12-16 17:43:37 | 显示全部楼层
本帖最后由 wzg356 于 2014-12-16 17:51 编辑
amwkto2011 发表于 2014-12-16 17:19
大师,这个有点不会了,能示例一个不,感谢了

别叫我大师用defun为4楼的表达式取一个函数名就行了

;;;单层表lst的元素按指定分隔符rr连接呈一个字符串
(defun list2str (lst rr / y x)
        (setq y nil)
        (apply 'strcat
        (cdr
            (foreach x(reverse(mapcar 'vl-princ-to-string lst))
                    (setq y(cons rr (cons x y)))
            )
        )
    )
)
;(list2str (LIST 1 "A" 2 "B" 3 "C" ) ":") ;===="1:A:2:B:3:C"

与这个应该一样http://bbs.xdcad.net/thread-675789-1-1.html

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-26 08:54 , Processed in 0.290306 second(s), 67 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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