如何使用一对来查找两个函数中的哪一个将计算最大值?方案



基本上有一个由两个函数组成的对,代码必须将对输入x找到x的最高评估并打印该评估。
我收到错误:

汽车:预期违反合同:对? 给定:4

define (max x)
   (lambda (x)     ;I wanted lambda to be the highest suitable function
 (if (> (car x) (cdr x))
        (car x)
        (cdr x))))
 (define one-function (lambda (x) (+ x 1)))
 (define second-function (lambda (x) (+ (* 2 x) 1)))  ;my two functions
((max (cons one-function second-function)) 4)  
在哪里

调用函数?并且您有两个参数称为 x ,它们必须具有不同的名称。试试这个:

(define (max f)                     ; you must use a different parameter name
  (lambda (x)
    (if (> ((car f) x) ((cdr f) x)) ; actually call the functions
        ((car f) x)
        ((cdr f) x))))

现在它将按预期工作:

((max (cons one-function second-function)) 4)
=> 9

相关内容

  • 没有找到相关文章

最新更新