Hey Neil, After a digging into DrRacket a little bit, I found the solution.
If I chose language SICP (PlaneT 1.18) from the Language menu in the DrRacket IDE and remove the `lang` line from my `.scm` file, I am able to get "load" to work. For some reason if I used the `lang` line, "#lang planet neil/sicp", "load" did not work. Shouldn't adding this lang line to my file be equivalent to selecting SICP (PlaneT 1.18) from the GUI ? I am using the latest version of DrRacket btw. This solves the problem, however I am curious whether there is lang line equivalent to selecting SICP (PlaneT 1.18) from the GUI? Regards On Tue, Oct 2, 2018 at 1:59 AM Neil Van Dyke <n...@neilvandyke.org> wrote: > Yasser Hussain wrote on 10/1/18 5:31 AM: > > Unfortunately, I don't remember which DrRacket version, and which > > exact `#lang` line I was using. But I specifically remember that > > "load" worked with some earlier version of racket. > > Hi, Yasser. The reason I asked those questions offline was that, after > checking my original SICP PLaneT package with Racket 6.12, I was no > longer assuming that `load` ever worked with the SICP support, and > perhaps `load` wasn't necessary for the current SICP support. I wanted > a rapid path to determining whether a regression happened, and where, > and you potentially had the best information for doing that quickly and > easily. Then we could report back to the much broader Racket email list > with the resolution. > > > > > Problem with using `require` is that I'll have to use "#lang racket" > > with it, which will prevent me from using standard scheme procedures > > like `set-cdr!`, etc. > > The SICP support is only intended to be a convenience for using the very > important SICP textbook, to try maximize SICP's accessibility to > contemporary students (who might not be able to run MIT Scheme, for > whatever reason). Please let me try to address your goals... > > If you really just want to use classics like `set-cdr!` in the Racket > universe or just with Racket tools, you might like to try Racket's > `#lang r5rs`. > > If you want the tons of benefits of evolved Racket, but also want > mutable pairs right now, you can have that with Racket (though, be aware > that a mutable pair isn't a subtype of pair in Racket, so all > pair/list-related code must be aware of this). There aren't many other > non-backward-compatible differences in Racket, and the change to > mutability of pairs is the only painful one I recall, in ~18 years of > contributing to Racket, > > A third possibility that I'd like to suggest is to consider trying to > write idiomatic Racket, as an exercise. If, for example, Racket > discourages mutable pairs, try to write your code without that, and see > where it pushes you (e.g., more towards functional programming, or > strengthening your code in some ways), and then decide what you think > about that. (Personally, I only had mutable pairs pain with the very > earliest Scheme code I wrote; in later code, I was already usually > treating pairs as immutable, and minimizing mutation in general.) > > BTW, since you said "standard", I very much appreciate sentiments in > favor of standards. Incidentally, I'm not part of the benevolent cabal; > just a bottom-tier contributor. :) In this niche of innovative language > platforms, I suspect that Racket overall would be consistent with your > ultimate goals, even if it's in some ways not "standard" -- it's much > more than any standard, and somewhat different. (Personally, if you're > thinking of it as a Scheme implementation, despite all their efforts to > be clear that it's not Scheme... I've probably used most of the Schemes > and descendants, and it's nice to know that I can always use other > Scheme implementation/descendants. Probably my favorite one other than > Racket is Gambit by Marc Feeley. I'm also fond of some of the others, > each with their own strengths, and they also remain in my pocket for > possibly using later. I also like that I can make my own Racket `#lang` > dialect at any time, in such a way that I maintain good interoperation > with, and contribution to, the rest of the Racket world.) > > > Is it possible for me to take a look at the source code and try to > > figure out why "load" doesn't work, and possible try to get it to > > work? Could you provide some pointers? :) > > Yes. Ways include: > > 1. To familiarize with the Racket package catalog, if you go to that > package catalog URL I gave, there's a "Code" button that, in this case, > goes to a GitHub repo, where you can do go normal Git and GitHub things. > > 2. Racket packages themselves actually usually include the source for > all of code+test+documentation. (There's an even more lightweight > source-centric thing I want to do, but haven't done yet.) I'm not sure > what's the best starting point for your needs, but here's two: > https://docs.racket-lang.org/pkg/cmdline.html > https://docs.racket-lang.org/pkg/git-workflow.html > > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.