[racket] How to prevent code from running when `required`?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Thu Jun 2 18:51:30 EDT 2011

You can get close if you use 'racket' to run the file; define a main
function that has the code that should only run in standalone and then
use the -m flag on the commandline.

Robby

On Thu, Jun 2, 2011 at 4:45 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>
> Not available yet, but thanks for asking: I requested this feature a month ago on our 'dev' list.
>
>
>
>
> On Jun 2, 2011, at 5:42 PM, Rodolfo Carvalho wrote:
>
>> Sorry if I didn't find it somewhere obvious, but I don't know how to do the following.
>>
>> I would like a have a file that when run standalone executes some code, and when "required" by another module just provides some definitions.
>>
>> Example:
>>
>> ;-------------------------------------------------------
>> ; my-lib.rkt
>> (provide make-milk-shake)
>>
>> (define (make-milk-shake flavor)
>>   ...)
>>
>> ; run this only when run standalone
>> (magic-thing
>>   (make-milk-shake 'banana)
>>
>>
>> ;-------------------------------------------------------
>> ; some-other.rkt
>> (require "my-lib.rkt")
>>
>> (make-milk-shake 'strawberry)
>> ; only make 1 milk shake of strawberry...
>>
>>
>>
>> That is, I am searching for an equivalent idiom for what in Python I'd write:
>>
>> if __name__ == "__main__":
>>     do_things()
>>
>>
>>
>>
>> []'s
>>
>> Rodolfo Carvalho
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://lists.racket-lang.org/listinfo/users
>
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/users
>



Posted on the users mailing list.