2016-12-09 13 views
2

私はracket foo.rktで走っているラケットでプログラムを書いています。これは動作しますが、印刷機能が呼び出されていなくても、プログラムトップレベルのすべての式の結果が出力される点が異なります。プログラムがREPLに行単位で入力されたかのようですが、この場合はREPLをまったく使用しようとしていません。コマンドラインからプログラムを実行しようとしています。ラケットを印刷しないようにするには?

どのように物事を印刷しないようにするには?

答えて

3

#lang racket、ラケットの実装におけるデフォルトの言語は、常にバックので、REPLが印刷には何もしていますゼロ値を返すREPL、および(values)、によって無視された値を返します(void)除くトップレベルの文を、印刷します。つまり、main関数のどちらかで終了し、REPLからの出力はありません。

statement-1 
statement-2 
statement-3 

そしてこれを変更:defineset!

(define (main) 
    statement-1 
    statement-2 
    statement-3 
    (void)) ; or (values) 

フォーム番目まったく同じ目的のために(void)と同じ値を返します。

racketでサポートされている言語はすべてトップレベルの文ではありません。実際のスキーム言語#!r6rsでは、トップレベルのステートメントは印刷されません。

関連する問題