乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Lt Dan's l

[编程交流] 将(rtos x 2 2)应用于lis

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:03:32 | 显示全部楼层
 
这种方法无疑使我的方法简单得多
 
  1. (defun LM:rtoslst ( l u p )
  2. (if l
  3.    (if (atom l)
  4.      (rtos l u p)
  5.      (cons (LM:rtoslst (car l) u p) (LM:rtoslst (cdr l) u p))
  6.    )
  7. )
  8. )
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:06:38 | 显示全部楼层
李,
 
我认为你的会很快达到大列表中的堆栈限制。(它用1000个原子列表崩溃r12,用10000个原子列表崩溃A2k)
 
而且我认为这将是一个相当缓慢的过程-大卫
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:12:03 | 显示全部楼层
如果数据是静态的(已知的),那么我会使用:
(mapcar(函数(λ(x)(rtos x 2 2)))
 
如果静态性稍低(可能有一些错误数据),我仍然会使用以下内容:
(mapcar(函数(λ(x)(if(atom x)(rtos x 2 2)x)))
 
如果数据完全未知,那么我将采用类似于李提供的路线。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 11:17:25 | 显示全部楼层
我想我更倾向于(数字)
 
(atom(cadr’(1 nil 3)))返回T
 
  1. 9

 
这将确保列表的长度至少相等-大卫
回复

使用道具 举报

2

主题

182

帖子

180

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:21:07 | 显示全部楼层
当然我不能争辩。这个概念实际上是一样的。
 
检查总是好的,但如果列表变得太未知,那么大多数时候我只会采用李提供的方法,然后继续(承受性能冲击,然后返回编码)。
 
如果我有一个混合列表,如:
(setq l1’(0.33 0.5 0.75(1.0(1.01)1.25(1.51.2.0)2.25 2.5零3.0 3.01 3.02 3.25 3.5 3.9 4.0))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:22:55 | 显示全部楼层
 
哦,是的,当然-对于长列表,有很多信息被添加到堆栈中,我的帖子可能更具概念性。有这么多嵌套到未知级别的数据,我会重新考虑程序的早期阶段,以避免出现这种情况。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 20:53 , Processed in 0.457534 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表