我正在寻找两个长度相等的列表,并返回所有索引彼此不相等的所有列表。

例如,如果我输入("orange" "yellow" "green" "green")("orange" "green" "yellow" "green") ,我希望得到的回报是(1 2) ((假定列表索引从方案中的0开始))。

我应该怎么做?

===============>>#1 票数:1

我将为您提供所需完成的工作的总体思路,并让您找出细节-我不想破坏您的作业:

(define (unequal-indexes lst1 lst2)
  (unequal-aux lst1 lst2 XXX1))

(define (unequal-aux l1 l2 idx)
  (cond ((null? l1) 
         XXX2)
        ((equal? (car l1) (car l2))
         XXX3)
        (else
         XXX4)))

首先,您必须意识到,您将需要一种跟踪所使用索引的方法。 为此,我定义的附配的过程, unequal-aux ,其被从主过程,被称为unequal-indexes 在上面的代码中,填写以下内容:

  • XXX1 :初始索引是多少?
  • XXX2 :如果列表为空,应该返回什么? 请记住,我们要返回索引列表
  • XXX3 :如果两个列表中的当前元素相等,会发生什么? 提示:递归必须在两个列表上必须继续,并且索引必须增加,但是我们不向正在构建的列表中添加元素
  • XXX4 :如果两个列表中的当前元素不同,会发生什么? 提示:递归必须在两个列表上必须继续,并且索引必须递增,这一次我们确实将一个元素添加到正在构建的列表中-哪个元素? 我们当前所在的索引

当然,现在你必须知道,名单是由内置cons每个元素-ing到列表中的其余部分,直到我们到达空(NULL)名单。

  ask by user1023010 translate from so

未解决问题?本站智能推荐:

2回复

检查列表是否相等Scheme [重复]

这个问题已经在这里有了答案: 我的代码提示错误“应用程序:不是过程”或“调用非过程” 1回答 这项工作是通过创建我自己的函数来检查两个列表是否相等,为此我正在定义函数。 我遇到的问题是当我尝试使用(listEquals list1 list2)调用函数时,它返回的
1回复

尝试检查列表中的所有元素是否唯一

如标题所示,我试图编写一个计划功能,以检查列表中的所有元素是否唯一。 我写了一些我认为应该起作用的代码: 它在错误的情况下可以正常工作,但是如果我写: 它返回: 有谁知道如何解决这个问题,我在做什么错? :)
2回复

检查列表中的所有元素在方案中是否相同

定义一个递归过程“全零?” 它接受一个位列表,并且仅当该列表仅包含零时才返回#t。 我们用单词“ oil”中的第一个和第三个小写字母表示零和一个位。 到目前为止,我有 但是它返回的变量全零? 没有约束。 我在做错什么,甚至在正确的轨道上吗?
10回复

方案:如何检查列表的所有元素是否相同

我想创建一个Scheme函数,如果它传递一个完全由相同元素组成的列表,则生成true。 这样的清单将是'(1 1 1 1)。 它会像'(1 2 1 1)那样产生错误。 这是我到目前为止: 显然这是不正确的,我是新手。 我想我无法表达我应该返回#t或#f 。 提前致谢!
2回复

方案(检查列表,数字和符号的相等性)

我是该计划的一个相对较新的用户,并且正在尝试制作一个能够检查数字,符号和列表(包括嵌套列表)是否相等的功能。 我已经尝试了以下代码的多种变体,但无法提出可行的解决方案; 主要问题是遇到嵌套列表后,如果原始列表中有更多元素,程序将无法继续执行该操作,而且我不确定如何使该函数适用于列表和数字/符
3回复

检查树之间是否相等的功能

如何在Scheme中实现一个包含2棵树并检查它们是否具有相同元素和结构的相等函数?
1回复

检查两组是否相等-方案

似乎找不到找到这种工作的基本案例。 任何帮助表示赞赏!
1回复

如何检查球拍中两个功能是否相等?

在遍历这样的列表'((a + b) + (c + d)) ,我将使用标识符+ ,并且不知道如何验证其为加号而不是其他符号功能类似/或* 。 如何验证遇到的加号实际上是加号?
2回复

检查列表是否按Scheme排序

我正在尝试检查列表是否已排序。 如果已排序,则返回True,否则返回False。 但是,此代码始终返回True,但不确定如何解决。
1回复

检查项目是否为列表

作为list? 不是根据SICP的Scheme中的原语,我正在寻找其等效原语。 我考虑了这些替代方案: pair? 但它为'()返回#f 。 pair? 或为null? 。 看起来还可以,是吗? 有没有更简单的方法?