2
我一直在使用以下語言定義文件,eopl-printing.rkt
, 球拍exn:失敗? unbound
#lang racket (require (except-in eopl #%module-begin)) (provide (all-from-out eopl)) (provide #%module-begin)正如 DrRacket EOPL Scheme output中所建議的那樣。所有這些,都被順利,除了當我嘗試調用函數的exn如:
#lang s-exp "eopl-printing.rkt" (require rackunit) (check-exn exn:fail? (lambda() (error 'hi "there")))
代替試驗成功通過如預期的,我得到一個「EXN:失敗?:綁定標識符...」消息。我已經閱讀了關於模塊的文檔,並嘗試了各種方法來嘗試重新揭露Racket exn的定義,但沒有任何運氣。有什麼建議麼?
謝謝,這是有道理的。在名稱衝突的情況下,第一個和第三個選項是否會帶來球拍覆蓋eopl的風險? –
可能。我運行了'eopl'測試套件,但沒有遇到任何問題。無論如何,'eopl'大多隻是重新提供'racket'的東西。而且它看起來好像重新定義了一些東西,比如'eopl:printf'和'eopl:error' – stchang
實際上,抓住最後的評論。我認爲['all-from-out'](http://docs.racket-lang.org/reference/require.html?q=all-from-out#%28form._%28%28lib._racket%2Fprivate %2Fbase..rkt%29._all-from-out%29%29)做對了。如果發生衝突會有錯誤。 – stchang