乐筑天下

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

[编程交流] 请帮忙

[复制链接]

2

主题

2

帖子

0

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 17:44:37 | 显示全部楼层 |阅读模式
大家好
我有这样一个列表:
((SPT01 0.11 1.15)(1/35 3/33 4/31 1 18 7/31)((SPT02 0.15 1.1)(1/34 3/30 4/31 2 14 7/22)((SPT03 0.25 2.44)(1/54 3/74 4/34 1 20 7/744)))
 
我需要一个函数来返回:
(((“SPT01”“0.11”“1.15”)(“1/35”“3/33”“4/31”“1”“18”“7/31”)((“SPT02”“0.15”“1.18”)(“1/34”“3/30”“4/31”“2”“14”“7/22”)((“SPT03”“0.25”“2.44”)(“1/54”“3/74”“4/34”“1”“20”“7/744”))
 
怎么做?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:06:31 | 显示全部楼层
不知道你是怎么得到SPT01的,因为(列出SPT01 0.11 1.15)根据你的帖子返回(零0.11 1.15)(列出“SPT01”0.11 1.15),无论如何RTOS是你的朋友。你做了第N个。SPT01是变量名吗?
  1. ; ignoring nested list for moment
  2. (setq s (list "SPT01" 0.11 1.15))
  3. (subst (rtos (nth 1 s) 2 2)(nth 1 s) s)
  4. (subst (rtos (nth 2 s) 2 2)(nth 2 s) s)
  5. ; returns !s
  6. ("SPT01" "0.11" "1.15")

 
  1. ;nested nth's
  2. (nth 0 lst) = ((SPT01 0.11 1.15) (1/35 3/33 4/31 1 18 7/31))
  3. (nth 0 (nth 0 lst))=(SPT01 0.11 1.15)
  4. (nth 1 (nth 0 (nth 0 lst)))=0.11
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 18:15:49 | 显示全部楼层
这可能有助于:-
  1. (defun foo (x)
  2. (mapcar '(lambda (y)
  3.      (mapcar '(lambda (z)
  4.                 (mapcar 'vl-princ-to-string z)
  5.               )
  6.              y
  7.      )
  8.    )
  9.   x
  10. )
  11. )
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 18:24:38 | 显示全部楼层
 
哇!由于我使用了两个非AutoCAD软件包,我已经很长时间没有使用VLISP了,但昨晚我处理了一段时间这个问题,结果并不令人满意。你简单高效的代码解决了OP的问题,让我对使用正确的工具可以做什么有了新的认识。
 
谢谢你还强迫我面对我的地图车/λ恐惧,萨蒂什!
 
BKT公司
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:39:26 | 显示全部楼层
这里有一个递归解决方案,允许任何深度的列表嵌套:
例如:
不过,我想问一下,你首先是如何获得这样一个列表的,因为很可能有一种方法可以避免这种转换。
 
还要注意,以这种方式转换双精度时,您将失去数值精度:
  1. 5
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
274
发表于 2022-7-5 18:54:46 | 显示全部楼层
 
Visual lisp使编码更加简单,可以实现比autolisp更多的功能。即使我在开始的时候遇到了mapcar的问题,但是继续练习。。。
 
 
注意,先生
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 04:14 , Processed in 0.548803 second(s), 64 queries .

© 2020-2025 乐筑天下

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