arc3.2语言sort的时候报错:(sort < `(2 9 3 7 5 1)) 需要写成这种:(sort > (pair (list 3 2)))

[复制链接]
发表于 2025-7-16 07:34:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
arc语言sort的时候报错:(sort < '(2 9 3 7 5 1))

  1. arc> (sort < '(2 9 3 7 5 1))
  2. Error: "set-car!: expected argument of type <pair>; given: 9609216"
  3. arc> (sort `< `(2 9 3 ))
  4. Error: "Function call on inappropriate object '< '(3 9)"
  5. arc> (sort `(2 9 3))
  6. Error: " sort: arity mismatch;\n the expected number of arguments does not match the given number\n  expected: 2\n  given: 1"
  7. arc> (sort `> `(2 9))
  8. Error: "Function call on inappropriate object '> '(9 2)"
  9. arc> (sort < (list 2 9 3 7 5 1))
  10. Error: "set-car!: expected argument of type <pair>; given: 9551872"
  11. arc> (= sortlist (list 2 9 3 7 5 1))
  12. (2 9 3 7 5 1)
  13. arc> sortlist
  14. (2 9 3 7 5 1)
  15. arc> (sort < sortlist)
  16. Error: "set-car!: expected argument of type <pair>; given: 14000128"
复制代码
怎么办呢? 
搞不明确

末了发现需要如许写:
  1. arc> (sort > (pair (list 3 2)))
  2. ((3 2))
  3. arc> (sort < (pair (list 2 3)))
  4. ((2 3))
复制代码
也就是需要利用pair 数对,且只能是两个数? 
也就是Arc3.2版本的sort是跟从前不一样的....
是更纯粹的,只支持一对数值的pair类型的数据进行排序。

而从前的版本是可以支持list排序的。也就是这种
  1. (= nums (list 5 2 8 1 4))
  2. (sort < nums)
复制代码
对了,list是可以改变的吗? 是不是因此新版本的list就不支持sort了? 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5

GMT+8, 2025-7-25 08:21 , Processed in 0.076219 second(s), 29 queries 手机版|qidao123.com技术社区-IT企服评测▪应用市场 ( 浙ICP备20004199 )|网站地图

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