当前位置:  开发笔记 > 编程语言 > 正文

如何判断列表是否包含第三项?

如何解决《如何判断列表是否包含第三项?》经验,为你挑选了1个好方法。

我有一个函数,它采用一个有两个或三个元素的列表.

;; expecting either ((a b c) d) or ((a b c) d e)
(define (has-third-item ls)
      (if (null? (caddr ls))
          false
          true)
      )

但是这段代码失败了

mcar: expects argument of type ; given ()

在(null?(caddr ls))表达式上.

我也试过了

(eq? '() (caddr ls))

但它也没有用.如何判断是否有第三项?



1> Jay Kominek..:

你不想要caddr(if(null?(cddr ls))...或者只是使用length来查找列表的长度,并将它与你感兴趣的值进行比较.

终止列表的'()将始终位于一对的cdr位置,因此在汽车位置(cad + r将执行)查找它不会有效.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有