明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 991|回复: 8

[提问] 请问如何求出列表中前n个变量的和或后n个变量的和

[复制链接]
发表于 2015-6-10 22:53:20 来自手机 | 显示全部楼层 |阅读模式
请问如何求出列表中前n个变量的和或后n个变量的和
发表于 2015-6-11 08:01:20 | 显示全部楼层
  1. (defun n+ (lst n)
  2. (setq sum 0 i 0)
  3. (if (> (length lst) n)
  4.   (repeat n
  5.    (setq sum (+ (nth i lst) sum))
  6.    (setq i (1+ i))
  7.   )
  8. )
  9. sum
)
  1. (defun +n (lst n)
  2. (n+ (reverse lst) n)
  3. )
发表于 2015-6-11 09:31:17 | 显示全部楼层
本帖最后由 77077 于 2015-6-11 09:32 编辑

  1. (apply '+ (sublist lst 0 (1- n)))
  2. (apply '+ (sublist lst n (length lst)))
复制代码
发表于 2015-6-11 15:56:10 | 显示全部楼层
  1. ;_$ (LM:sublst '(1 2 3 4 5 6 7 8) 2 4)
  2. ;(3 4 5 6)
  3. ;
  4. ;_$ (LM:sublst '(1 2 3 4 5 6 7 8) 2 nil)
  5. ;(3 4 5 6 7 8)
  6. ;
  7. (defun cx-sublst ( lst idx len / rtn )
  8.         (setq len (if len (min len (- (length lst) idx)) (- (length lst) idx))
  9.                 idx (+  idx len)
  10.         )
  11.         (repeat len (setq rtn (cons (nth (setq idx (1- idx)) lst) rtn)))
  12. )
发表于 2015-6-11 22:00:18 | 显示全部楼层
本帖最后由 llsheng_73 于 2015-6-11 22:19 编辑

  1. (DEFUN N+(N F LST / I)
  2.   (setq i 0 f(if f vl-remove-if-not vl-remove-if ))
  3.   (apply'+(f'(lambda(x)(<=(setq i(1+ i))n))lst))
  4.   )

或者
  1. (defun sublst(m n lst / i)
  2.   (setq i 0)
  3.   (vl-remove-if-not'(lambda(x)(<= m(setq i(1+ i))n))lst)
  4.   )
  5. (defun N+(n f lst / a b)
  6.   (apply'+(sublst(if f 0 n)(if f(1+ n)(length lst))lst))
  7.   )


(N+ 4 t '(1 2 3 4 5 6 7 8 9 10))==>10
(N+ 4 nill '(1 2 3 4 5 6 7 8 9 10))==>45


发表于 2015-6-11 23:37:07 | 显示全部楼层
llsheng_73 发表于 2015-6-11 22:00
或者

73大大
(vl-remove-if-not'(lambda(x)(<= m (setq i(1+ i)) n))lst)
这句话中  表lst中的元素是怎么参与计算的啊  没明白
lambda(x)中的X并没有参与计算啊
发表于 2015-6-12 00:18:21 | 显示全部楼层
重慶崽兒 发表于 2015-6-11 23:37
73大大
(vl-remove-if-not'(lambda(x)(

不需要它参与计算,只需要它依次取lst中的元素时,计数器I能进行累加
然而不要它却又不行,因为语法这样规定的
发表于 2015-6-12 15:20:36 | 显示全部楼层
llsheng_73 发表于 2015-6-12 00:18
不需要它参与计算,只需要它依次取lst中的元素时,计数器I能进行累加
然而不要它却又不行,因为语法这样 ...

明白了   呵呵 还能这样
  谢谢
发表于 2016-10-23 14:00:31 | 显示全部楼层
不错的资料,谢谢楼主分享啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-20 03:25 , Processed in 0.154832 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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