明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 635|回复: 4

[提问] 菜鸟求助lisp问题

[复制链接]
发表于 2016-1-26 14:42 | 显示全部楼层 |阅读模式
50明经币
新手刚学lisp,有点晕,求帮忙
要求写一个功能,两个参数,第一个是一个表, 第二个是一个数字,然后从表里面把相加等于数字的加数列出来。

效果就像这样:
(alladders '(1 2 3) 5) => (2 3)
(alladders '(1 5 3) 2) => nil
(alladders '(1 16 2 8 4) 29) => (1 16 8 4)
(alladders '(1 1 5 6 8) 10) => (1 1 8)
(alladders '(1 12 19 70 200) 7) => nil


另外有要求只能用下面有的功能,或者自己写
(atom x)
(null x)
(eq x y)
(equal x y)
(numberp x)
(append x y)
(car x)
(cdr x)
(cons x y)
(if x y z)
(cond ... )
(let ((x y) (u v)) z)
(let* ((x y) (u v)) z)
(defun ...)
(quote x) 'x
(list x1 x2 ...)
(print ...)
(sort L fun)
(copy-list L)
(sort (copy-list L) sort-predicate)


感激不尽!

发表于 2016-1-26 15:52 | 显示全部楼层
你这是跑错论坛了,这里讨论的是AutoLisp,也就是“依附于”AutoCAD的lisp,和通常的Lisp是不全相同的。
不过按照Lisp的通常方法,这种问题无法是编列加递归,很久没写程序了,也不想多费神了,就不多说了。
至于限制,建议可以先不看,先完成基本功能,再慢慢优化。
回复

使用道具 举报

发表于 2016-1-26 16:16 | 显示全部楼层
alladders用高数中的组合就行
回复

使用道具 举报

发表于 2016-1-28 12:58 | 显示全部楼层
file:///C:/Users/usert/Desktop/jdfw.gif
回复

使用道具 举报

发表于 2016-1-28 13:10 | 显示全部楼层
已解决,但是不是很完美
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 18:52 , Processed in 0.265382 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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