The "Scheme Requests for Implementation" (SRFI) process is a new approach to helping Scheme users to write portable and yet useful code. It is a forum for people interested in coordinating libraries and other additions to the Scheme language between implementations.
This manual includes the original documentation of all the SRFIs already ported to Racket. For more information on the SRFI process, please follow this link.
To load a SRFI with name conflicts (currently SRFIs 1, 5, 13, 17, 19, 43,
    45, 48, 61, 63, 69 and 87) in a module,
    please see the note below.
    
    To load a SRFI, use the following form:
    
     (require srfi/N)
    
    if you know the number of the SRFI you want to load. This is the preferred
    method.  Alternatively, use this one:
    
     (require srfi/N/NAME)
    
    if you know the `informative name' of the SRFI.
    
    N, is a number corresponding to the sub-collection that holds a particular
    SRFI, and NAME is a more descriptive name we assigned to the main file in
    which the SRFI is defined. For instance, to load SRFI-34 you have to do
    either one of:
    
     (require srfi/34)
    
    or,
    
     (require srfi/34/exception)
    
    
    NOTE on SRFIs with name conflicts
    
    Certain SRFIs (currently SRFIs 1, 5, 13, 17, 19, 43, 45, 48, 61, 63, 69 and
    87) provide names which conflict with names provided by the racket
    language. Attempting to require one of these SRFIs in a module written in
    the racket language will result in an error.
    
    To address this problem, the Racket implementations of these SRFIs provide a
    different module which renames the problematic exports to avoid these
    conflicts. For SRFI 1, this library is called list, and should be
    required like this:
    
     (require srfi/1/list)
    
    which supplies the colliding names with a prefix of 's:' (e.g. "s:map",
    "s:reverse!") and is therefore suitable for requires in a module.
    
    For SRFI 19, this library is called time, and should be required like
    this:
    
     (require srfi/19/time)
    
    which supplies the colliding names with a prefix of 'srfi:' (e.g.
    "srfi:date?", "srfi:date-second") and is therefore
    suitable for requires in a module.
    
    
    Supported SRFIs
    
SRFI           File
    name          
    Sub-collection
    SRFI-1         list.rkt            
    1
    SRFI-2         and-let.rkt         
    2
    SRFI-4(*1)     4.rkt
    SRFI-5         let.rkt             
    5
    SRFI-6(+)      6.rkt
    SRFI-7         program.rkt         
    7
    SRFI-8         receive.rkt         
    8
    SRFI-9         record.rkt          
    9
    SRFI-11(+)     11.rkt
    SRFI-13        string.rkt          
    13
    SRFI-14        char-set.rkt        
    14
    SRFI-16(+)     16.rkt
    SRFI-17        set.rkt             
    17
    SRFI-19(*2)    time.rkt            
    19
    SRFI-23(+)     23.rkt
    SRFI-25        array.rkt           
    25
    SRFI-26        cut.rkt             
    26
    SRFI-27        random-bits.rkt     
    27
    SRFI-28(+)     28.rkt
    SRFI-29        localization.rkt    
    29
    SRFI-30(+)     30.rkt
    SRFI-31        rec.rkt             
    31
    SRFI-32        sort.scm           
    32
    SRFI-34        exception.rkt       
    34
    SRFI-35        condition.rkt       
    35
    SRFI-38(+)     38.rkt
    SRFI-39(+)     39.rkt
    SRFI-40        stream.rkt          
    40
    SRFI-42        comprehensions.rkt  
    42
    SRFI-43        vector-lib.rkt      
    43
    SRFI-45(*3)    lazy.rkt            
    45
    SRFI-48        format.rkt          
    48
    SRFI-54        cat.rkt             
    54
    SRFI-57        records.rkt         
    57
    SRFI-59        vicinity.rkt        
    59
    SRFI-60        60.rkt              
    60
    SRFI-61        cond.rkt            
    61
    SRFI-62(+)
    SRFI-63        63.rkt              
    63
    SRFI-64        testing.rkt         
    64
    SRFI-66        66.rkt              
    66
    SRFI-67        compare.rkt         
    67
    SRFI-69        hash.rkt            
    69
    SRFI-71        letvalues.rkt       
    71
    SRFI-74        74.rkt              
    74
    SRFI-78        check.rkt           
    78
    SRFI-86        86.rkt              
    86
    SRFI-87        case.rkt            
    87
    
Notes:
+ Supported by the Racket core
    
    *1 The functionality is all part of racket available
    via (require ffi/unsafe), the only missing part is the i/o
    syntax.
    
    *2 The time module does not export its time structure
    (you have to use the time-* procedures.) It renames all
    the date-* accessors to tm:date-* so that you won't get
    errors when including this code in other modules. Care
    most be taken NOT to confuse the internal date structure
    with the Racket one, they are not the same, and all
    procedures from this library expect the former.
    
    *3 This port also provides promise? / srfi-45-promise?.