Search code examples
schemeracketguilechicken-scheme

Is there a standardized way to load a SRFI?


In Chicken it looks like I can (use srfi-9), but in Guile it looks like you say (use-modules (srfi srfi-9)), in Racket it is (require srfi/9). Is there a standardized use-module form that should work across all scheme implementations (so that I can write portable code)?


Solution

  • Yes, in R6RS and R7RS, use:

    (import (srfi …))
    

    import is the 'standard form' for this. The trouble is that the can depend on the implementation. So the problem is moved down one level. I've seen:

    (import (srfi :0))
    (import (srfi srfi-0)
    

    in different implementations.