乐筑天下

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

[编程交流] 正列表值

[复制链接]

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 14:25:54 | 显示全部楼层 |阅读模式
您好,我如何将列表中的所有数字转换为正值?
我猜我需要使用“abs”和“apply”,但不确定是什么组合。
现在,我都在谷歌上寻找一种方法来做到这一点。
有人知道吗。。。谢谢
 
 
例如:
 
 
(setq lista’(-20.4-10.0)(20.0-50.0)(58.0-60.6)))
 
转换为:
 
(setq newlista’((20.4 10.0)(20.0 50.0)(58.0 60.6)))
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-6 14:39:52 | 显示全部楼层
这应该是你想要的
 
(mapcar(函数(λ(n)(mapcar’abs n)))lista)
回复

使用道具 举报

55

主题

243

帖子

188

银币

后起之秀

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

铜币
275
发表于 2022-7-6 14:46:26 | 显示全部楼层
谢谢,这就成功了。
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-6 14:57:57 | 显示全部楼层
 
很乐意帮忙
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 15:14:31 | 显示全部楼层
如果你使用这样的东西,你的列表看起来是什么并不重要。您可以在包含或不包含嵌入列表的列表上运行它。
即:(列表2 2(列表3-3“B”E)(列表3-3-2“G”))将变为(2 2(3 3“B”E)(3 3 2“G”))
  1. ;;;Convert all values in list and sublists to positive numbers
  2. ;;;#List - list with values to convert
  3. ;;;Alan J. Thompson, 06.14.09
  4. (defun AT:AbsList (#List)
  5. (mapcar
  6.    '(lambda (x)
  7.       (cond
  8.         ((vl-consp x) (AT:AbsList x))
  9.         ((member (type x) (list 'INT 'REAL)) (abs x))
  10.         (T x)
  11.       ) ;_ cond
  12.     ) ;_ lambda
  13.    #List
  14. ) ;_ mapcar
  15. ) ;_ defun
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:20:16 | 显示全部楼层
很好的递归Alan。。。你在沼泽地呆得太久了。。
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 15:30:15 | 显示全部楼层
哈哈,我直到做完才意识到自己做了什么。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 00:01 , Processed in 0.320221 second(s), 66 queries .

© 2020-2025 乐筑天下

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