比较Racket中的两个列表

 iuang 发布于 2023-02-13 21:25
  • php
  • 在Racket中是否有内置函数,我们可以仅根据值而不是值的顺序来检查两个列表的相等性,用?

    例如,如果将'(1 2 2 3 4 5)与'(3 1 2 5 4)进行比较,它应该返回true.

    或者实现这样一个功能的最简单方法是什么?

    1 个回答
    • 如果出现次数无关紧要,那么您正在进行集合比较.您可以将列表转换为集合,然后比较集合:

      > (equal? (list->set '(1 2 3 4 5)) (list->set '(5 4 3 2 1)))
      #t
      

      如果出现次数很重要,那么您正在进行多重比较.对常见类型的值执行此操作的一种简单方法是对两个列表进行排序,然后以通常的方式比较它们的相等性:

      > (equal? (sort '(3 2 1 4 5) <) (sort '(2 1 3 4 5) <))
      #t
      > (equal? (sort '(1 2 1) <) (sort '(2 1) <))
      #f
      

      2023-02-13 21:33 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有