Scheme 如何使谓词起作用?计划中

Scheme 如何使谓词起作用?计划中,scheme,racket,Scheme,Racket,我在尝试做谓词函数 数据类型定义 (define-datatype expression expression? (const-exp (num number?)) (var-exp (var symbol?)) (zero?-exp (exp1 expression?)) (diff-exp (exp1 expression?) (exp2 expression?))) 如果参数为#2(结构:const exp 7),则打印#t 如果参数为#2(结构:

我在尝试做谓词函数

数据类型定义

(define-datatype expression expression?
  (const-exp (num number?))
  (var-exp (var symbol?))
  (zero?-exp (exp1 expression?))
  (diff-exp (exp1 expression?)
            (exp2 expression?)))
如果参数为#2(结构:const exp 7),则打印#t

如果参数为#2(结构:var exp x),则打印#f


如果您能帮助我,我将不胜荣幸,所以我猜您正在学习,可能会用作您的环境

如果这是真的,您可能应该在此处使用:

然后


定义数据类型
在Scheme中不存在。@SanGyeolKang如果这对您有效,请确保。
(define const-exp? ... ) 
(define (const-exp? e)
  (cases expression e
    (const-exp (num) #t)
    (else #f)))
> (const-exp? (const-exp 7))
#t
> (const-exp? (var-exp 'x))
#f