Scheme 函数不接受列表作为输入

问题描述 投票:0回答:1

我正在尝试在方案中编写一个函数来检查列表中的项目数量并将其与给定变量进行比较,但是它似乎不接受列表作为输入

这是一个返回列表中项目数量的函数,我知道这行得通

(define get_length 
  (lambda (list) 
    (if (null? list) 0 
        (+ 1 (get_length(cdr list))))))

这是

check-length?

的定义
(define check-length? 
  (lambda (inTriple count) 
    (eq? (get_length (inTriple)) count)))

然而,当我尝试跑步时

(check-length? '('a 'bc) 2)

我得到错误

对象 ((quote a) (quote bc)) 不适用。

scheme
1个回答
0
投票

问题出在校验长度的定义上?我在括号内有三倍,现在更正为:

(define check-length? 
  (lambda (inTriple count) 
    (eq? (get_length inTriple) count)))

并按要求工作。

© www.soinside.com 2019 - 2024. All rights reserved.