如何在Racket中使用check-expect

use*_*073 8 scheme racket

我试图在方案中使用check-expect函数,但我一直被告知它是一个未绑定的check-expect标识符.不检查 - 期待我已经可以使用的功能吗?以下是我的代码:

#lang racket

(define contains (lambda (item list*) 
                   (if (equal? list* '()) 
                        #f
                        (if (equal? item (car list*)) 
                            #t
                            (contains item (cdr list*))))))

(define z (list 1 2 3))
(define q (list 4 5 6))
(define p (list "apple" "orange" "carrot"))
(check-expect (contains 1 z) #t)
Run Code Online (Sandbox Code Playgroud)

dyo*_*yoo 6

check-expect 从技术上讲,它不是自动构建到方案或Racket中的.

请注意您正在使用#lang racket.这是专业的Racket语言,该语言希望您知道并明确说明要导入的库.它不会为您自动导入它们.

(现在,您可能需要一个单元测试库 ;还有一个随Racket标准库一起提供的.)

但是如果你刚刚开始学习编程,那么使用Racket中的一种教学语言会更有意义.

对于你上面使用的代码,我怀疑你可能会想要这个代码.启动DrRacket并从"语言"菜单中的"如何设计程序"子菜单中选择"初学者学生语言".

有关详细信息,请参阅http://www.ccs.neu.edu/home/matthias/HtDP2e/prologue.html.


Gui*_*rme 6

老问题,但对谷歌员工的回答:

你可以(require test-engine/racket-tests),它定义了check-expect.

请注意,与 BSL 不同,您必须使用(test).