2015-12-31 28 views
1

按照http://www.scheme.com/csug8/libraries.html中的說明,我可以構建一個庫smcho.ss在Scheme中使用頂級定製庫(球拍6.3)

(library (smcho simple (1)) 
    (export hello factorial) 
    (import (rnrs (6))) 

    (define (hello x) 
     (+ x 10)) 

    (define (factorial n) 
     (cond 
      [(<= n 0) 1] 
      [else (* n (factorial (- n 1)))])) 
) 

然後,plt-r6rs --install smcho.sshttp://lists.racket-lang.org/users/archive/2009-September/035465.html)安裝。

然而,當我試圖用它top_level.ss,

(import (smcho simple) (rnrs (6)))  
(print (factorial 10)) 

我有錯誤訊息

scheme> plt-r6rs top_level.sc 
get-module-code: no such file: #<path:/Users/smcho/Desktop/scheme_lib/top_level.sc> 
    context...: 

可能是什麼問題? 我檢查了~/Library/Racket/6.3/collects目錄存儲正確編譯的庫,所以問題不應該從庫中。

回答

0

問題是我應該使用(display (factorial 10))而不是print。此外,在DrRacket GUI中,我需要添加#lang r6rs來運行它。

我不確定當printpr導致問題時爲什麼display是OK。

+2

球拍提供'打印'功能,但R6RS不。 R6RS標準只定義了「顯示」。 –