Take the 2-minute tour ×

With all the controversy surrounding scheme r6rs, I stuck with r5rs and I am wondering why the designers decided to not implement a module system. How does one organize code in this?

share|improve this question
add comment

2 Answers

The short answer is "because they didn't standardize a module system until R6RS."

At least based on my recollection from the time, there were several reasons a module system wasn't dealt with before that. First of all, although it wasn't standardized, nearly every implementation included some sort of module system before that, so the group of people who cared was restricted to those who wanted modules to be portable, not just everybody who wanted modules at all.

Second, a module system is a lot of work with very few unequivocally "right" answers -- nearly every decision you make is a compromise. Many earlier changes (not all, of course, but many nonetheless) were clear corrections of earlier mistakes.

Third, (related to the first one) nearly every implementation had some sort of module system in place, which created a bit of contention -- most of them saw their own design as good (that's generally why they picked that design after all) and in most cases they'd gone through several iterations of improvements on their basic design as well. As I already said, most of the decisions are compromises, so advocates of each could point to problems with every other design extant, and most theoretical ones as well.

So, few people, lots of work, and quite a bit of disagreement. Pretty much a recipe for slow development (at best).

share|improve this answer
Um, that's very wrong -- R5RS came out in 1998, and probably all major schemes at the time did not have a module system, the very common thing was (and in many schemes it's still is) to use load. –  Eli Barzilay Jul 3 '12 at 9:53
add comment

It seems that your concerns are addressed in the following post R6RS vs. R5RS scheme. In another words, there was no standardized modules in place till r6rs version.

share|improve this answer
add comment

Your Answer


