Scheme 如何使用一对函数来确定两个函数中哪一个的计算值最大?计划

Scheme 如何使用一对函数来确定两个函数中哪一个的计算值最大?计划,scheme,max,cdr,Scheme,Max,Cdr,基本上有一对由两个函数组成,代码必须采用对输入x,以找到x的最高评估值并打印该评估值。 我收到错误消息: 车辆:预计违反合同:对?给定值:4 在哪里调用函数?您有两个名为x的参数,它们必须有不同的名称。试试这个: (define (max f) ; you must use a different parameter name (lambda (x) (if (> ((car f) x) ((cdr f) x)) ; actually c

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

车辆:预计违反合同:对?给定值: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

我当时不知道如何调用函数,但现在我明白了,非常感谢奥斯卡!
((max (cons one-function second-function)) 4)
=> 9