小编use*_*546的帖子

Scheme(Racket)如果在cond内没有返回任何内容

我一直在DrRacket工作,试图创建一个"前缀"功能(#lang球拍).它应该将两个列表作为输入,#t如果pf为null或者等于开头,则应输出ls.

我的问题是,当我的代码pf不是前缀ls而且ls不是null 时,它似乎根本不返回任何内容.如果我用#fif语句替换if语句,比如'(),它将正确地返回,但如果我尝试捕获'()并基于它而给出输出,它会给出没有意义的结果(比如说是'()不是't null,或者'()不相等'()).它似乎与在cond语句中使用if语句有关.谁能告诉我它在做什么,或者为什么?是否可以使此代码正常工作,或者我是否需要以另一种方式重新编写代码?

谢谢您的帮助!

(define prefix
  (lambda (pf ls)
    (cond
      [(null? pf) #t]
      [(null? ls) #f]
      [(if (equal? (car pf) (car ls)) (prefix (cdr pf) (cdr ls)) #f)])
      ))
Run Code Online (Sandbox Code Playgroud)

scheme if-statement racket

4
推荐指数
1
解决办法
4188
查看次数

标签 统计

if-statement ×1

racket ×1

scheme ×1