[英]Certain functions not loading into repl
通過Little Schemer,我們需要定義一些自己的功能。 我已經定義了它們,只有add1和sub1在加載后出現在repl中。 我正在使用Racket v7.0。
#lang racket
(provide atom? add1 sub1)
(define atom?
(lambda (x)
(and (not (pair? x)) (not (null? x)))))
(define add1
(lambda (x)
(+ x 1)))
(define sub1
(lambda (x)
(- x 1)))
我無法弄清楚為什么(atom?)無法加載。 當我復制粘貼s表達式到repl時,它可以工作。 有任何想法嗎?
由於您正在取消#lang racket
演唱,並provide
使用文件的正確方法,請使用require
。
$ ls
toys.rkt
$ racket
Welcome to Racket v6.8.
> (require "toys.rkt")
> (atom? '())
#f
因此,想象您制作了一個這樣的程序:
#lang racket
(require "toys.rkt")
(if (atom? 'test)
'atom
'no-atom)
您保存並運行它:
$ racket program.rkt
'atom
另請注意,您可以使用R6RS並將toys
為圖書館。 然后,您需要使用plt-r6rs --install toys.rkt
,然后使用(import (rnrs base) (toys))
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.