簡體   English   中英

某些功能未加載到repl中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM