I\'m having an issue with BSL. I want to divide my code into separate auxiliary files and use
(require \"auxiliary-function.rkt\")
at the beg
Note that if you're doing this for a course this strategy might not be accepted for a submission.
What I have done for some of my own projects is a pattern like this:
Have one file written in plain Racket, called "provide.rkt"
, like this:
; provide.rkt
#lang racket
(provide provide all-defined-out)
Then you can use this to either provide specific functions or provide all definitions from a file.
In your "library" BSL file, you can require provide into it like this, and use that to provide the specific function(s) you want:
; <auxiliary-library>.rkt
; written in BSL
(require "provide.rkt")
(provide <auxiliary-function-name>)
(define (<auxiliary-function-name> ....) ....)
And finally, in your "main" BSL file, you can require the library like this:
; written in BSL
(require "<auxiliary-library>.rkt")
(<auxiliary-function-name> ....)
In your "library" BSL file, you can require provide into it and use that to provide everything:
; <auxiliary-library>.rkt
; written in BSL
(require "provide.rkt")
(provide (all-defined-out))
(define (<auxiliary-function-name-1> ....) ....)
(define (<auxiliary-function-name-2> ....) ....)
...
Then in your "main" BSL file, you can require the library and get all of the definitions:
; written in BSL
(require "<auxiliary-library>.rkt")
(<auxiliary-function-name-1> ....)
(<auxiliary-function-name-2> ....)
...
BSL is not for you. If you know how to manage modules, I recommend you use full-fledged Racket.
If you wish to create auxiliary libraries, I recommend you develop them in full Racket, provide the identifiers you need, use htdp/error to formulate error messages, and 'require' will then work.