Вроде. Вы можете изменить add42.rkt
, чтобы эффекты не запускались, когда этого требует другой модуль.
Если вы можете реорганизовать add42.rkt
, чтобы все эффекты были в подмодуле main
, то эти эффекты будут происходить, когда add42.rkt
запускается сам по себе, но не тогда, когда это требуется для test.rkt
.
В add42.rkt
, для разделения эффектов на подмодуль main
с помощью module+ main
:
#lang racket
(provide add42)
(define (add42 x)
(+ x 42))
(module+ main
(displayln "-- add42.rkt --"))
Эффекты в основном подмодуле будут запускаться после других выражений верхнего уровня, только если add42.rkt
запускается как основная программа, а не как библиотека.