作为list? 不是根据SICP的Scheme中的原语,我正在寻找其等效原语。 我考虑了这些替代方案:

  • pair? 但它为'()返回#f
  • pair? 或为null? 看起来还可以,是吗?

有没有更简单的方法?

===============>>#1 票数:3 已采纳

因为列表是()pair?所以没有原始的pair? cdr是列表。 由于列表不是原始列表,而是对事件与空列表的复合。 list? 可以这样定义:

(define (list? lst)
  (or (null? lst)
      (and (pair? lst)
           (list? (cdr lst)))))

  ask by Himanshu translate from so

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

2回复

检查列表是否按Scheme排序

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

检查参数是否为点对而不是列表

我刚刚开始学习Racket,我必须检查一个参数是否是一个虚线对。 我试过这个: 并返回#t 。 并返回#t 。 并返回#t 。 但是我希望在这种情况下获得#f。 有没有像pair?一样的另一个程序pair? 只有当我将它作为参数传递给虚线对时才能生效?
4回复

如何检查列表是否均匀

我想测试列表是否均匀,在。 喜欢(evenatom '((hi) (jk) l (mno))应该回复#t因为它有4个元素。 从谷歌, 我发现如何检查奇数 : 使它甚至,我只是换了car用cdr和cdr有car ? 我是Scheme的新手,只是试图获得基础知识。
1回复

检查列表或子列表中的项目

我想使用检查功能检查项目是否在列表或子列表中。 但是错误确实使我感到困惑。 有人可以告诉我我的代码有什么问题吗?
3回复

检查列表的反向是否与列表不变相同?

我正在学习方案,我要做的一件事情是递归以确定列表是否具有反射性,即,列表在反转时看起来是相同的。 我必须原始地做,所以我不能对列表使用反向方法。 我还必须使用明显的递归。 问题在于方案中,很难使用我们学到的最基本的东西来访问列表或缩短列表,因为它们有点像链表。 我也想不使用索引。 话虽
1回复

检查号码列表中是否出现号码

写一个过程叫做direct-num-occurs ? 检查数字列表中是否出现数字。 例子: 这是我尝试的: 但是我收到一个错误消息,说应该是一对。
6回复

Scheme,检查两个列表中的任何内容是否相同

如果它们中的任何内容相同,是否可以相互检查两个列表? (核对清单'(嘿饼干猴)'(苹果披萨饼干)==> #t 我试过类似的东西 我知道这写不正确,但不知道如何解决这个问题。 谁可以帮助我?
1回复

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

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

检查列表是否为循环的过程(Scheme)

是否有内置过程来检查列表是否在Scheme(R5RS)中是循环的? 何时列表是循环的(根据定义)? 我试图找到一些程序来检查这个,以及它是如何实现的,但我还是找不到。
1回复

方案尝试检查列表中是否有单词

我有几个功能。 功能调整? 正在检查输入内容是否属于adjs的形容词列表。 我要使用OK函数尝试做的是用户将输入一个列表并通过adj运行该列表? 查看它是否属于adjs列表。 当我运行该函数时,会发生错误返回,提示我在函数仅需要两个时输入了“ X”个参数。 为什么?