找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2359|回复: 18

[研讨] 取表一部分 nth

[复制链接]

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-9-5 14:17:00 | 显示全部楼层 |阅读模式

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

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

×
;;除去表一部分
;;(PartListRemove 2 3 '(1 2 3 4 5))
(defun PartListRemove (from to lst / I L)
  (setq i -1)
  (foreach x lst
    (setq i (1+ i))
    (cond ((or (< i from) (> i to)) (setq l (cons x l))))
  )
  (REVERSE l)
)

;;取表一部分
;;(PartList1 2 3 '(1 2 3 4 5))=>(3 4)
(defun PartList1 (from to lst / I L)
  (setq i -1)
  (foreach x lst
    (setq i (1+ i))
    (cond ((and (>= i from) (<= i to)) (setq l (cons x l))))
  )
  (REVERSE l)
)
;;取表一部分
;;(PartList2 2 3 '(1 2 3 4 5))=(3 4)
(defun PartList2 (from to lst / i L)
  (setq i -1)
  (mapcar '(lambda (x)
             (setq i (1+ i))
             (cond ((and (>= i from) (<= i to)) (setq l (cons x l))))
           )
          lst
  )
  (REVERSE l)
)
;;取表一部分
;;(PartList3 2 3 '(1 2 3 4 5))=(3 4)
(defun PartList3 (from to lst / I L X)
  (setq i -1)
  (while (and (setq x (car lst))
              (setq lst (cdr lst))
              (< i to)
         )
    (setq i (1+ i))
    (cond((>= i from)(setq l (cons x l))))
  )
  (REVERSE l)
)
游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1D豆 +5 收起 理由
xshrimp + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-5 14:24:26 来自手机 | 显示全部楼层
本帖最后由 csharp 于 2014-9-5 14:27 编辑

能退出遍历的才是最佳
和c++的 return break一样

评分

参与人数 1D豆 +2 收起 理由
/db_自贡黄明儒_ + 2 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 5591个

财富等级: 富甲天下

发表于 2014-9-5 14:55:08 | 显示全部楼层
本帖最后由 HLCAD 于 2014-9-6 07:58 编辑

支持黄大全侠!我也来凑个热闹(纯热闹);;;hlcad:
;;取表一部分
;;(PartList5 2 3 '(1 2 3 4 5))=(3 4)
(defun PartList5 (from to Lst)
  (setq Lst (reverse Lst))
  (repeat (- (length Lst) to 1) (setq Lst (cdr Lst)))
  (setq Lst (reverse Lst))
  (repeat from (setq Lst (cdr Lst)))
Lst)


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

使用道具 举报

已领礼包: 2869个

财富等级: 家财万贯

发表于 2014-9-5 15:49:02 | 显示全部楼层

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

使用道具 举报

已领礼包: 2869个

财富等级: 家财万贯

发表于 2014-9-5 16:11:34 | 显示全部楼层
本帖最后由 viphappy 于 2014-9-7 22:35 编辑

;;取表一部分
;;(PartList 2 4 '(1 2 8 4 7 3 4 5))=(2 4 3 4)
(defun PartList (from to lst )
(Vl-remove-if '(lambda(x)(or(< x from)(> x to)))lst)
)


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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-5 16:19:27 来自手机 | 显示全部楼层
[发布] 返回表第n---m之间的元素
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2869个

财富等级: 家财万贯

发表于 2014-9-5 16:25:15 | 显示全部楼层
本帖最后由 viphappy 于 2014-9-7 22:29 编辑

;;理解有误
;;取表一部分,  返回表第n---m之间的元素
;;(PartList 2 6 '(1 2 8 4 7 3 4 5))=(2 8 4 7 3)

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-9-5 16:30:31 来自手机 | 显示全部楼层
nth本身不是一个高效函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-9-26 15:24:01 | 显示全部楼层
黄老师的好东西太多了啊,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 329个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 8742个

财富等级: 富甲天下

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

使用道具 举报

已领礼包: 396个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 475个

财富等级: 日进斗金

发表于 2015-5-30 23:50:51 来自手机 | 显示全部楼层
不错的程匞
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 3186个

财富等级: 富可敌国

发表于 2016-12-2 16:35:59 | 显示全部楼层
啥也不说了,感谢楼主分享哇!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-22 02:19 , Processed in 0.450280 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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