找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 694|回复: 3

[LISP函数]:几个简单实用的表处理函数

[复制链接]
发表于 2003-3-5 15:44:40 | 显示全部楼层 |阅读模式

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

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

×
因为自己经常用到,所以就把它写了下来,希望对你也有点用。

  1. ;;;AUTOLISP函数
  2. ;;;Write by HQD9639
  3. ;;;*****************************************************************************
  4. ;1.表截取函数(1)
  5.   ;;;功能:把旧表oldlst从num以后的表项删除,组成新表(num从0开始)
  6.   ;;;CODE:
  7.   (defun cutbeh_lst (oldlst num / k templst)
  8.    (setq k 0)
  9.    (setq templst '())
  10.    (foreach n oldlst
  11.           (if (/= k num)
  12.               (progn
  13.                  (setq templst (cons n templst))
  14.                  (setq k (1+ k))
  15.               )
  16.          )
  17.    )
  18.    (setq newlst (reverse templst))
  19. )
  20. ;;;*******************************************************************************
  21. ;2.表截取函数(2)
  22.   ;;;功能:把旧表oldlst从num以前的表项删除,组成新表(num从0开始)
  23.   ;;;CODE:
  24.   (defun cutbef_lst (oldlst num / k templst)
  25.    (setq k 0)
  26.    (setq templst '())
  27.    (foreach n oldlst
  28.           (if (> k num)
  29.               (progn
  30.                  (setq templst (cons n templst))
  31.                  (setq k (1+ k))
  32.               )
  33.               (setq k (1+ k))
  34.          )
  35.    )
  36.    (setq newlst (reverse templst))
  37. )
  38. ;;;*******************************************************************************
  39. ;3.表截取函数(3)
  40.   ;;;功能:截取旧表oldlst中num1至num2之间的表项,组成新表(num1,num2从0开始)
  41.   ;;;CODE:
  42.   (defun cutmid_lst (oldlst num1 num2 / k templst)
  43.    (setq k 0)
  44.    (setq templst '())
  45.    (foreach n oldlst
  46.           (if (and (>= k num1) (<= k num2))
  47.               (progn
  48.                  (setq templst (cons n templst))
  49.                  (setq k (1+ k))
  50.               )
  51.               (setq k (1+ k))
  52.          )
  53.    )
  54.    (setq newlst (reverse templst))
  55. )
  56. ;;;*******************************************************************************
  57. ;4.删除旧表oldlst中的指定表项lstitem
  58.   ;;;CODE:
  59.   (defun cutitem_lst (oldlst lstitem /)
  60.      (setq newlst (append (reverse (cdr (member lstitem (reverse oldlst))))
  61.                           (cdr (member lstitem oldlst))
  62.                  )
  63.     )
  64.   )
  65. ;;;*******************************************************************************
  66. ;5.删除旧表oldlst中的指定元素

  67.   ;;;功能:删除旧表oldlst中的指定元素,组成新表(num从0开始)
  68.   ;;;CODE:
  69.   (defun cutnum_lst (oldlst num / k templst)
  70.    (setq k 0)
  71.    (setq templst '())
  72.    (foreach n oldlst
  73.           (if (/= k num)
  74.               (progn
  75.                  (setq templst (cons n templst))
  76.                  (setq k (1+ k))
  77.               )
  78.               (setq k (1+ k))
  79.          )
  80.    )
  81.    (setq newlst (reverse templst))
  82. )
  83. ;;;*******************************************************************************
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-3-30 04:43:47 | 显示全部楼层
太好了,我正需要!
交作业了!!!哈哈哈
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 9个

财富等级: 恭喜发财

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 10:24 , Processed in 0.264643 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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