ITPub博客

首页 > Linux操作系统 > Linux操作系统 > lisp 习题 post+

lisp 习题 post+

原创 Linux操作系统 作者:babyyellow 时间:2012-08-07 14:14:42 0 删除 编辑
假设函数 pos+ 接受一个列表并返回把每个元素加上自己的位置的列表:


> (pos+ '(7 5 1 4))
(7 6 3 7)

CL-USER> (defun post+ (lst)
       (and (listp lst)
        (let ((n (length lst)) (x nil))
          (dolist (obj lst)
            (push (+ (nth (- n 1)lst) (- n 1)) x)
             (setf n ( - n 1)))
              x)))

CL-USER> (post+ 1)
NIL
CL-USER> (post+ '(0 1 2 3 4))
(0 2 4 6 8)
CL-USER> (post+ (list 1 2 3 4))
(1 3 5 7)




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-740236/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908852