预期布尔值的函数的预期过程错误

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

所以我正在尝试编写一个函数来遍历点列表并计算距离给定平面小于特定距离的点数。我的问题是,即使我的函数被编写为接收条件,我也会收到“预期的过程”错误。具体这个错误:

application: not a procedure;
expected a procedure that can be applied to arguments
given: #f

下面是两个函数。错误始终指向 checkDistEps 返回的#t/#f。

plane 是 4 个原子的列表,point 是 3 个原子的列表(在错误发生的点),eps 是一个数字


(define checkDistEps
  (lambda (plane point eps)
    (if 
     (< (/ (abs(+ (* (car plane) (car point)) (* (cadr plane) (cadr point)) (* (caddr plane) (caddr point)) (cadddr plane)))
       (sqrt(+ (expt (car plane) 2) (expt (cadr plane) 2) (expt (caddr plane) 2)))) eps)
     (#t)
     (#f))))

(define iterateDist
  (lambda (plane points eps)
    (let iterate ((n 0))
      (cond
        ((list? (car points))
         (begin
           (iterateDist plane (car points) eps)
           (iterateDist plane (cdr points) eps)))
        ((null? points)
         (0))
        (else
         (cond
           ((checkDistEps plane points eps)
            (add1 n))
           (else (0))))))))

我尝试替换这些行(错误来自哪里)

((checkDistEps plane points eps)

有了这个

((eq? (checkDistEps plane points eps) #t)

在许多其他类似的变化中。没有任何帮助。任何建议都会很棒,谢谢!

scheme racket parentheses
© www.soinside.com 2019 - 2024. All rights reserved.