├── .gitignore ├── LICENSE ├── README.md ├── etc.rkt ├── format.rkt ├── racket-format.rkt ├── racket.uew ├── read.rkt └── sort.rkt /.gitignore: -------------------------------------------------------------------------------- 1 | compiled/ 2 | 3 | # Object files 4 | *.o 5 | *.ko 6 | *.obj 7 | *.elf 8 | 9 | # Precompiled Headers 10 | *.gch 11 | *.pch 12 | 13 | # Libraries 14 | *.lib 15 | *.a 16 | *.la 17 | *.lo 18 | 19 | # Shared objects (inc. Windows DLLs) 20 | *.dll 21 | *.so 22 | *.so.* 23 | *.dylib 24 | 25 | # Executables 26 | *.exe 27 | *.out 28 | *.app 29 | *.i*86 30 | *.x86_64 31 | *.hex 32 | 33 | # Debug files 34 | *.dSYM/ 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Russell Wallace 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A tool to format Racket code. 2 | 3 | Features: 4 | 5 | - Stand-alone command-line program. 6 | 7 | - Decides line breaks as well as indentation. 8 | 9 | - Sorts definitions where this will not change the meaning of the code. 10 | 11 | - Optimized for simplicity and clarity; easy to extend and customize. 12 | 13 | If no arguments are specified, it formats the code from standard input and writes the result to standard output. 14 | 15 | If files are given, it formats the files. If `-i` is specified together with files, the files are edited in place. Otherwise, the result is written to standard output. 16 | 17 | ``` 18 | Usage: racket-format [options] files 19 | 20 | -h Show help 21 | -V Show version 22 | -i Inplace edit 23 | ``` 24 | 25 | To build: 26 | 27 | ``` 28 | raco exe racket-format.rkt 29 | ``` 30 | -------------------------------------------------------------------------------- /etc.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | (provide (all-defined-out)) 3 | 4 | (define (atom? x) 5 | (not (pair? x))) 6 | 7 | (define-syntax (debug stx) 8 | (syntax-case stx () 9 | ((_ x) 10 | #`(let ((r x)) 11 | (eprintf "~a:~a: ~s: ~s\n" 12 | #,(syntax-source stx) 13 | #,(syntax-line stx) 14 | 'x 15 | r) 16 | r)))) 17 | 18 | (define (decl? v) 19 | (match v 20 | ((list (or 'define 21 | 'define/memo 22 | 'define/memo*) 23 | (list w ...) 24 | b ...) 25 | #t) 26 | ((list 'define-syntax b ...) 27 | #t) 28 | (_ #f))) 29 | 30 | (define-syntax receive 31 | (syntax-rules () 32 | ((receive args 33 | x 34 | b ...) 35 | (call-with-values (lambda () 36 | x) 37 | (lambda args 38 | b ...))))) 39 | -------------------------------------------------------------------------------- /format.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | (require (planet dyoo/while-loop:1:=1) 3 | "etc.rkt" 4 | "read.rkt" 5 | memoize) 6 | 7 | (provide format-module) 8 | 9 | (define (abbrev-prefix v) 10 | (match v 11 | ((list (== quasiquote-symbol) _) 12 | "`") 13 | ((list (== quasisyntax-symbol) _) 14 | "#`") 15 | ((list (== quote-symbol) _) 16 | "'") 17 | ((list (== syntax-symbol) _) 18 | "#'") 19 | ((list (== unquote-splicing-symbol) _) 20 | ",@") 21 | ((list (== unquote-symbol) _) 22 | ",") 23 | ((list (== unsyntax-splicing-symbol) _) 24 | "#,@") 25 | ((list (== unsyntax-symbol) _) 26 | "#,") 27 | (_ #f))) 28 | 29 | (define (blank-after-decls lst) 30 | (match lst 31 | ((list a (== blank-symbol) b ...) 32 | (list* a blank-symbol (blank-after-decls b))) 33 | ((list (? decl*? a) b c ...) 34 | (list* a blank-symbol (blank-after-decls (cons b c)))) 35 | ((list a b ...) 36 | (cons a (blank-after-decls b))) 37 | (_ '()))) 38 | 39 | (define (blank-before-comments lst) 40 | (match lst 41 | ((list (== blank-symbol) a ...) 42 | (cons blank-symbol (blank-before-comments a))) 43 | ((list (list (== line-comment-symbol) a) b ...) 44 | (list* (list line-comment-symbol a) (blank-before-comments b))) 45 | ((list a (list (== line-comment-symbol) b) c ...) 46 | (list* a blank-symbol (list line-comment-symbol b) (blank-before-comments c))) 47 | ((list a b ...) 48 | (cons a (blank-before-comments b))) 49 | (_ '()))) 50 | 51 | (define (decl*? x) 52 | (match x 53 | ((list (or 'provide 54 | 'require) 55 | b ...) 56 | #t) 57 | (_ (decl? x)))) 58 | 59 | (define (expr col v) 60 | (define col1 (+ col 1)) 61 | (define col2 62 | (when (pair? v) 63 | (+ col 2 (width (car v))))) 64 | (define op 65 | (when (pair? v) 66 | (~a (car v)))) 67 | (define op2 68 | (when (pair? v) 69 | (format "(~a " 70 | (car v)))) 71 | (match v 72 | ; atom 73 | ((== blank-symbol) 74 | "") 75 | ((? atom? _) 76 | (~s v)) 77 | 78 | ; comment 79 | ((list (== block-comment-symbol) s) 80 | s) 81 | ((list (== expr-comment-symbol) a) 82 | (string-append "#;" (expr (+ col 2) a))) 83 | ((list (== line-comment-symbol) s) 84 | s) 85 | 86 | ; abbrev prefix 87 | ((? abbrev-prefix (list _ w)) 88 | (define s (abbrev-prefix v)) 89 | (string-append s (expr (+ col (string-length s)) w))) 90 | 91 | ; special form 92 | ((list (or 'define 93 | 'set!) 94 | a 95 | b) 96 | #:when 97 | (and (symbol? a) 98 | (inline col1 v)) 99 | (string-append "(" (inline col1 v) ")")) 100 | ((list (or 'begin 101 | 'cond 102 | 'else) 103 | b ...) 104 | (string-append "(" op "\n" (make-string col1 #\space) (exprs col1 b) ")")) 105 | ((list (or 'case 106 | 'define 107 | 'define-syntax 108 | 'define/memo 109 | 'define/memo* 110 | 'eprintf 111 | 'for 112 | 'for* 113 | 'for*/and 114 | 'for*/first 115 | 'for*/hash 116 | 'for*/hasheq 117 | 'for*/hasheqv 118 | 'for*/last 119 | 'for*/list 120 | 'for*/or 121 | 'for*/product 122 | 'for*/sum 123 | 'for/and 124 | 'for/first 125 | 'for/hash 126 | 'for/hasheq 127 | 'for/hasheqv 128 | 'for/last 129 | 'for/list 130 | 'for/or 131 | 'for/product 132 | 'for/sublists 133 | 'for/sum 134 | 'format 135 | 'if 136 | 'lambda 137 | 'lambda/memo 138 | 'lambda/memo* 139 | 'match 140 | 'parameterize 141 | 'printf 142 | 'receive 143 | 'syntax-rules 144 | 'unless 145 | 'when 146 | 'while 147 | 'while/list 148 | 'with-handlers 149 | 'with-output-to-file) 150 | a 151 | b ...) 152 | (string-append op2 153 | (expr col2 a) 154 | "\n" 155 | (make-string col1 #\space) 156 | (exprs col1 b) 157 | ")")) 158 | ((list 'let (list a ...) b ...) 159 | (string-append op2 160 | (expr col2 a) 161 | "\n" 162 | (make-string col1 #\space) 163 | (exprs col1 b) 164 | ")")) 165 | ((list (or 'let 166 | 'syntax-case) 167 | id 168 | (list a ...) 169 | b ...) 170 | (string-append op2 171 | (~a id) 172 | " (" 173 | (exprs (+ col2 (width id) 2) a) 174 | ")\n" 175 | (make-string col1 #\space) 176 | (exprs col1 b) 177 | ")")) 178 | 179 | ; no args 180 | ((list f) 181 | (string-append "(" (expr col1 f) ")")) 182 | 183 | ; args inline 184 | ((list (not (or 'and 185 | 'or 186 | 'provide 187 | 'require)) 188 | a ...) 189 | #:when 190 | (and (symbol? (car v)) 191 | (not (memq line-comment-symbol (flatten v))) 192 | (inline col1 v)) 193 | (string-append "(" (inline col1 v) ")")) 194 | 195 | ; args aligned 196 | ((list (? symbol? f) a ...) 197 | #:when 198 | (for/and ((w a)) 199 | (< (+ col2 (width w)) 80)) 200 | (string-append op2 (exprs col2 a) ")")) 201 | 202 | ; args unaligned 203 | ((list f a ...) 204 | (string-append "(" 205 | (expr col1 f) 206 | "\n" 207 | (make-string col1 #\space) 208 | (exprs col1 a) 209 | ")")))) 210 | 211 | (define (exprs col lst) 212 | (set! lst (blank-after-decls lst)) 213 | (set! lst (blank-before-comments lst)) 214 | (set! lst 215 | (let loop ((lst lst)) 216 | (match lst 217 | ((list a '... c ...) 218 | (cons (string-append (expr col a) " ...") (loop c))) 219 | ((list a b ...) 220 | (cons (expr col a) (loop b))) 221 | (_ '())))) 222 | (string-join lst (string-append "\n" (make-string col #\space)))) 223 | 224 | (define (format-module m) 225 | (trim-lines (exprs 0 m))) 226 | 227 | (define (inline col lst) 228 | (set! lst 229 | (let loop ((col col) 230 | (lst lst)) 231 | (match lst 232 | ((list a b ...) 233 | (cons (expr col a) (loop (+ col (width a) 1) b))) 234 | (_ '())))) 235 | (define s (string-join lst " ")) 236 | (and (not (string-contains? s "\n")) 237 | (< (+ col (string-length s)) 80) 238 | s)) 239 | 240 | (define (max-line-length s) 241 | (define lines (string-split s "\n")) 242 | (if (null? lines) 243 | 0 244 | (apply max (map string-length lines)))) 245 | 246 | (define (trim-lines s) 247 | (define lines (string-split s "\n")) 248 | (set! lines 249 | (for/list ((line lines)) 250 | (string-trim line #:left? #f))) 251 | (string-join lines "\n" #:after-last "\n")) 252 | 253 | (define/memo* (width v) 254 | (max-line-length (expr 0 v))) 255 | 256 | (define blank-symbol (gensym)) 257 | -------------------------------------------------------------------------------- /racket-format.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | (require "format.rkt" 3 | "read.rkt" 4 | "sort.rkt") 5 | 6 | (define inplace (make-parameter #f)) 7 | (define show-version (make-parameter #f)) 8 | (define files 9 | (command-line #:program 10 | "racket-format" 11 | #:once-each 12 | (("-i") 13 | "Inplace edit" 14 | (inplace #t)) 15 | (("--version" 16 | "-V") 17 | "Show version" 18 | (show-version #t)) 19 | #:args 20 | files 21 | files)) 22 | (when (show-version) 23 | (displayln "racket-format version 0") 24 | (exit 0)) 25 | (when (null? files) 26 | (set! files '("-"))) 27 | (for ((path files)) 28 | (define m 29 | (if (string=? path "-") 30 | (read-module) 31 | (with-input-from-file path read-module))) 32 | (set! m (sort-module m)) 33 | (define s (format-module m)) 34 | (if (and (inplace) 35 | (not (string=? path "-"))) 36 | (display-to-file s path #:exists 'replace) 37 | (display s))) 38 | -------------------------------------------------------------------------------- /racket.uew: -------------------------------------------------------------------------------- 1 | /L12"Racket" Escape Char = \ Line Comment = ; String Chars = " File Extensions = RKT RKTL 2 | /Delimiters = @()|\{}[]:;"' , . 3 | /Indent Strings = "define" "let" 4 | /Open Brace Strings = "(" "[" "{" 5 | /Close Brace Strings = ")" "]" "}" 6 | /C1"blue" 7 | #%app 8 | #%datum 9 | #%declare 10 | #%expression 11 | #%module-begin 12 | #%plain-app 13 | #%plain-lambda 14 | #%plain-module-begin 15 | #%printing-module-begin 16 | #%provide 17 | #%require 18 | #%stratified-body 19 | #%top 20 | #%top-interaction 21 | #%variable-reference 22 | -> 23 | ->* 24 | ->*m 25 | ->d 26 | ->dm 27 | ->i 28 | ->m 29 | ... 30 | :do-in 31 | == 32 | => 33 | _ 34 | absent 35 | abstract 36 | all-defined-out 37 | all-from-out 38 | and 39 | any 40 | augment 41 | augment* 42 | augment-final 43 | augment-final* 44 | augride 45 | augride* 46 | begin 47 | begin-for-syntax 48 | begin0 49 | case 50 | case-> 51 | case->m 52 | case-lambda 53 | class 54 | class* 55 | class-field-accessor 56 | class-field-mutator 57 | class/c 58 | class/derived 59 | combine-in 60 | combine-out 61 | command-line 62 | compound-unit 63 | compound-unit/infer 64 | cond 65 | cons/dc 66 | contract 67 | contract-out 68 | contract-pos/neg-doubling 69 | contract-struct 70 | contracted 71 | define 72 | define-compound-unit 73 | define-compound-unit/infer 74 | define-contract-struct 75 | define-custom-hash-types 76 | define-custom-set-types 77 | define-for-syntax 78 | define-local-member-name 79 | define-logger 80 | define-match-expander 81 | define-member-name 82 | define-module-boundary-contract 83 | define-namespace-anchor 84 | define-opt/c 85 | define-sequence-syntax 86 | define-serializable-class 87 | define-serializable-class* 88 | define-signature 89 | define-signature-form 90 | define-splicing-for-clause-syntax 91 | define-struct 92 | define-struct/contract 93 | define-struct/derived 94 | define-syntax 95 | define-syntax-rule 96 | define-syntaxes 97 | define-unit 98 | define-unit-binding 99 | define-unit-from-context 100 | define-unit/contract 101 | define-unit/new-import-export 102 | define-unit/s 103 | define-values 104 | define-values-for-export 105 | define-values-for-syntax 106 | define-values/invoke-unit 107 | define-values/invoke-unit/infer 108 | define/augment 109 | define/augment-final 110 | define/augride 111 | define/contract 112 | define/final-prop 113 | define/match 114 | define/overment 115 | define/override 116 | define/override-final 117 | define/private 118 | define/public 119 | define/public-final 120 | define/pubment 121 | define/subexpression-pos-prop 122 | define/subexpression-pos-prop/name 123 | delay 124 | delay/idle 125 | delay/name 126 | delay/strict 127 | delay/sync 128 | delay/thread 129 | do 130 | else 131 | except 132 | except-in 133 | except-out 134 | export 135 | extends 136 | failure-cont 137 | false 138 | false/c 139 | field 140 | field-bound? 141 | file 142 | flat-murec-contract 143 | flat-rec-contract 144 | for 145 | for* 146 | for*/and 147 | for*/async 148 | for*/first 149 | for*/fold 150 | for*/fold/derived 151 | for*/foldr 152 | for*/foldr/derived 153 | for*/hash 154 | for*/hasheq 155 | for*/hasheqv 156 | for*/last 157 | for*/list 158 | for*/lists 159 | for*/mutable-set 160 | for*/mutable-seteq 161 | for*/mutable-seteqv 162 | for*/or 163 | for*/product 164 | for*/set 165 | for*/seteq 166 | for*/seteqv 167 | for*/stream 168 | for*/sum 169 | for*/vector 170 | for*/weak-set 171 | for*/weak-seteq 172 | for*/weak-seteqv 173 | for-label 174 | for-meta 175 | for-space 176 | for-syntax 177 | for-template 178 | for/and 179 | for/async 180 | for/first 181 | for/fold 182 | for/fold/derived 183 | for/foldr 184 | for/foldr/derived 185 | for/hash 186 | for/hasheq 187 | for/hasheqv 188 | for/last 189 | for/list 190 | for/lists 191 | for/mutable-set 192 | for/mutable-seteq 193 | for/mutable-seteqv 194 | for/or 195 | for/product 196 | for/set 197 | for/seteq 198 | for/seteqv 199 | for/stream 200 | for/sum 201 | for/vector 202 | for/weak-set 203 | for/weak-seteq 204 | for/weak-seteqv 205 | gen:custom-write 206 | gen:dict 207 | gen:equal+hash 208 | gen:set 209 | gen:stream 210 | generic 211 | get-field 212 | hash/dc 213 | if 214 | implies 215 | import 216 | include 217 | include-at/relative-to 218 | include-at/relative-to/reader 219 | include/reader 220 | inherit 221 | inherit-field 222 | inherit/inner 223 | inherit/super 224 | init 225 | init-depend 226 | init-field 227 | init-rest 228 | inner 229 | inspect 230 | instantiate 231 | interface 232 | interface* 233 | invariant-assertion 234 | invoke-unit 235 | invoke-unit/infer 236 | lambda 237 | lazy 238 | let 239 | let* 240 | let*-values 241 | let-syntax 242 | let-syntaxes 243 | let-values 244 | let/cc 245 | let/ec 246 | letrec 247 | letrec-syntax 248 | letrec-syntaxes 249 | letrec-syntaxes+values 250 | letrec-values 251 | lib 252 | link 253 | local 254 | local-require 255 | log-debug 256 | log-error 257 | log-fatal 258 | log-info 259 | log-warning 260 | match 261 | match* 262 | match*/derived 263 | match-define 264 | match-define-values 265 | match-lambda 266 | match-lambda* 267 | match-lambda** 268 | match-let 269 | match-let* 270 | match-let*-values 271 | match-let-values 272 | match-letrec 273 | match-letrec-values 274 | match/derived 275 | match/values 276 | member-name-key 277 | mixin 278 | module 279 | module* 280 | module+ 281 | nand 282 | new 283 | nor 284 | object-contract 285 | object/c 286 | only 287 | only-in 288 | only-meta-in 289 | only-space-in 290 | open 291 | opt/c 292 | or 293 | overment 294 | overment* 295 | override 296 | override* 297 | override-final 298 | override-final* 299 | parameterize 300 | parameterize* 301 | parameterize-break 302 | parametric->/c 303 | place 304 | place* 305 | place/context 306 | planet 307 | prefix 308 | prefix-in 309 | prefix-out 310 | private 311 | private* 312 | prompt-tag/c 313 | protect-out 314 | provide 315 | provide-signature-elements 316 | provide/contract 317 | public 318 | public* 319 | public-final 320 | public-final* 321 | pubment 322 | pubment* 323 | quasiquote 324 | quasisyntax 325 | quasisyntax/loc 326 | quote 327 | quote-syntax 328 | quote-syntax/prune 329 | recontract-out 330 | recursive-contract 331 | relative-in 332 | rename 333 | rename-in 334 | rename-inner 335 | rename-out 336 | rename-super 337 | require 338 | send 339 | send* 340 | send+ 341 | send-generic 342 | send/apply 343 | send/keyword-apply 344 | set! 345 | set!-values 346 | set-field! 347 | shared 348 | stream 349 | stream* 350 | stream-cons 351 | stream-lazy 352 | struct 353 | struct* 354 | struct-copy 355 | struct-field-index 356 | struct-guard/c 357 | struct-out 358 | struct/c 359 | struct/contract 360 | struct/ctc 361 | struct/dc 362 | struct/derived 363 | submod 364 | super 365 | super-instantiate 366 | super-make-object 367 | super-new 368 | syntax 369 | syntax-case 370 | syntax-case* 371 | syntax-id-rules 372 | syntax-rules 373 | syntax/loc 374 | tag 375 | this 376 | this% 377 | thunk 378 | thunk* 379 | time 380 | unconstrained-domain-> 381 | unit 382 | unit-from-context 383 | unit/c 384 | unit/new-import-export 385 | unit/s 386 | unless 387 | unquote 388 | unquote-splicing 389 | unsyntax 390 | unsyntax-splicing 391 | values/drop 392 | when 393 | with-continuation-mark 394 | with-contract 395 | with-contract-continuation-mark 396 | with-handlers 397 | with-handlers* 398 | with-method 399 | with-syntax 400 | ~? 401 | ~@ 402 | λ 403 | /C2"red" 404 | #f 405 | #t 406 | false 407 | true 408 | /C3"yellow" 409 | /C4"green" 410 | * 411 | *list/c 412 | + 413 | - 414 | // / 415 | < 416 | 422 | >/c 423 | >= 424 | >=/c 425 | abort-current-continuation 426 | abs 427 | absolute-path? 428 | acos 429 | add-between 430 | add1 431 | alarm-evt 432 | always-evt 433 | and/c 434 | andmap 435 | angle 436 | any/c 437 | append 438 | append* 439 | append-map 440 | apply 441 | argmax 442 | argmin 443 | arithmetic-shift 444 | arity-at-least 445 | arity-at-least-value 446 | arity-at-least? 447 | arity-checking-wrapper 448 | arity-includes? 449 | arity=? 450 | arrow-contract-info 451 | arrow-contract-info-accepts-arglist 452 | arrow-contract-info-chaperone-procedure 453 | arrow-contract-info-check-first-order 454 | arrow-contract-info? 455 | asin 456 | assert-unreachable 457 | assf 458 | assoc 459 | assq 460 | assv 461 | atan 462 | bad-number-of-results 463 | banner 464 | base->-doms/c 465 | base->-rngs/c 466 | base->? 467 | between/c 468 | bitwise-and 469 | bitwise-bit-field 470 | bitwise-bit-set? 471 | bitwise-ior 472 | bitwise-not 473 | bitwise-xor 474 | blame-add-car-context 475 | blame-add-cdr-context 476 | blame-add-context 477 | blame-add-missing-party 478 | blame-add-nth-arg-context 479 | blame-add-range-context 480 | blame-add-unknown-context 481 | blame-context 482 | blame-contract 483 | blame-fmt->-string 484 | blame-missing-party? 485 | blame-negative 486 | blame-original? 487 | blame-positive 488 | blame-replace-negative 489 | blame-replaced-negative? 490 | blame-source 491 | blame-swap 492 | blame-swapped? 493 | blame-update 494 | blame-value 495 | blame? 496 | block-device-type-bits 497 | boolean=? 498 | boolean? 499 | bound-identifier=? 500 | box 501 | box-cas! 502 | box-immutable 503 | box-immutable/c 504 | box/c 505 | box? 506 | break-enabled 507 | break-parameterization? 508 | break-thread 509 | build-chaperone-contract-property 510 | build-compound-type-name 511 | build-contract-property 512 | build-flat-contract-property 513 | build-list 514 | build-path 515 | build-path/convention-type 516 | build-string 517 | build-vector 518 | byte-pregexp 519 | byte-pregexp? 520 | byte-ready? 521 | byte-regexp 522 | byte-regexp? 523 | byte? 524 | bytes 525 | bytes->immutable-bytes 526 | bytes->list 527 | bytes->path 528 | bytes->path-element 529 | bytes->string/latin-1 530 | bytes->string/locale 531 | bytes->string/utf-8 532 | bytes-append 533 | bytes-append* 534 | bytes-close-converter 535 | bytes-convert 536 | bytes-convert-end 537 | bytes-converter? 538 | bytes-copy 539 | bytes-copy! 540 | bytes-environment-variable-name? 541 | bytes-fill! 542 | bytes-join 543 | bytes-length 544 | bytes-no-nuls? 545 | bytes-open-converter 546 | bytes-ref 547 | bytes-set! 548 | bytes-utf-8-index 549 | bytes-utf-8-length 550 | bytes-utf-8-ref 551 | bytes? 554 | bytes? 555 | caaaar 556 | caaadr 557 | caaar 558 | caadar 559 | caaddr 560 | caadr 561 | caar 562 | cadaar 563 | cadadr 564 | cadar 565 | caddar 566 | cadddr 567 | caddr 568 | cadr 569 | call-in-continuation 570 | call-in-nested-thread 571 | call-with-atomic-output-file 572 | call-with-break-parameterization 573 | call-with-composable-continuation 574 | call-with-continuation-barrier 575 | call-with-continuation-prompt 576 | call-with-current-continuation 577 | call-with-default-reading-parameterization 578 | call-with-escape-continuation 579 | call-with-exception-handler 580 | call-with-file-lock/timeout 581 | call-with-immediate-continuation-mark 582 | call-with-input-bytes 583 | call-with-input-file 584 | call-with-input-file* 585 | call-with-input-string 586 | call-with-output-bytes 587 | call-with-output-file 588 | call-with-output-file* 589 | call-with-output-string 590 | call-with-parameterization 591 | call-with-semaphore 592 | call-with-semaphore/enable-break 593 | call-with-values 594 | call/cc 595 | call/ec 596 | car 597 | cartesian-product 598 | cdaaar 599 | cdaadr 600 | cdaar 601 | cdadar 602 | cdaddr 603 | cdadr 604 | cdar 605 | cddaar 606 | cddadr 607 | cddar 608 | cdddar 609 | cddddr 610 | cdddr 611 | cddr 612 | cdr 613 | ceiling 614 | channel-get 615 | channel-put 616 | channel-put-evt 617 | channel-put-evt? 618 | channel-try-get 619 | channel/c 620 | channel? 621 | chaperone-box 622 | chaperone-channel 623 | chaperone-continuation-mark-key 624 | chaperone-contract-property? 625 | chaperone-contract? 626 | chaperone-evt 627 | chaperone-hash 628 | chaperone-hash-set 629 | chaperone-of? 630 | chaperone-procedure 631 | chaperone-procedure* 632 | chaperone-prompt-tag 633 | chaperone-struct 634 | chaperone-struct-type 635 | chaperone-vector 636 | chaperone-vector* 637 | chaperone? 638 | char->integer 639 | char-alphabetic? 640 | char-blank? 641 | char-ci<=? 642 | char-ci=? 645 | char-ci>? 646 | char-downcase 647 | char-foldcase 648 | char-general-category 649 | char-graphic? 650 | char-in 651 | char-in/c 652 | char-iso-control? 653 | char-lower-case? 654 | char-numeric? 655 | char-punctuation? 656 | char-ready? 657 | char-symbolic? 658 | char-title-case? 659 | char-titlecase 660 | char-upcase 661 | char-upper-case? 662 | char-utf-8-length 663 | char-whitespace? 664 | char<=? 665 | char=? 668 | char>? 669 | char? 670 | character-device-type-bits 671 | check-duplicate-identifier 672 | check-duplicates 673 | checked-procedure-check-and-extract 674 | choice-evt 675 | class->interface 676 | class-info 677 | class-seal 678 | class-unseal 679 | class? 680 | cleanse-path 681 | close-input-port 682 | close-output-port 683 | coerce-chaperone-contract 684 | coerce-chaperone-contracts 685 | coerce-contract 686 | coerce-contract/f 687 | coerce-contracts 688 | coerce-flat-contract 689 | coerce-flat-contracts 690 | collect-garbage 691 | collection-file-path 692 | collection-path 693 | combinations 694 | combine-output 695 | compile 696 | compile-allow-set!-undefined 697 | compile-context-preservation-enabled 698 | compile-enforce-module-constants 699 | compile-syntax 700 | compile-target-machine? 701 | compiled-expression-recompile 702 | compiled-expression? 703 | compiled-module-expression? 704 | complete-path? 705 | complex? 706 | compose 707 | compose1 708 | conjoin 709 | conjugate 710 | cons 711 | cons/c 712 | cons? 713 | const 714 | continuation-mark-key/c 715 | continuation-mark-key? 716 | continuation-mark-set->context 717 | continuation-mark-set->iterator 718 | continuation-mark-set->list 719 | continuation-mark-set->list* 720 | continuation-mark-set-first 721 | continuation-mark-set? 722 | continuation-marks 723 | continuation-prompt-available? 724 | continuation-prompt-tag? 725 | continuation? 726 | contract-continuation-mark-key 727 | contract-custom-write-property-proc 728 | contract-equivalent? 729 | contract-exercise 730 | contract-first-order 731 | contract-first-order-passes? 732 | contract-late-neg-projection 733 | contract-name 734 | contract-proc 735 | contract-projection 736 | contract-property? 737 | contract-random-generate 738 | contract-random-generate-env? 739 | contract-random-generate-fail 740 | contract-random-generate-fail? 741 | contract-random-generate-get-current-environment 742 | contract-random-generate-stash 743 | contract-random-generate/choose 744 | contract-stronger? 745 | contract-struct-exercise 746 | contract-struct-generate 747 | contract-struct-late-neg-projection 748 | contract-struct-list-contract? 749 | contract-val-first-projection 750 | contract? 751 | convert-stream 752 | copy-directory/files 753 | copy-file 754 | copy-port 755 | cos 756 | cosh 757 | count 758 | current-blame-format 759 | current-break-parameterization 760 | current-code-inspector 761 | current-command-line-arguments 762 | current-compile 763 | current-compile-realm 764 | current-compile-target-machine 765 | current-compiled-file-roots 766 | current-continuation-marks 767 | current-contract-region 768 | current-custodian 769 | current-directory 770 | current-directory-for-user 771 | current-drive 772 | current-environment-variables 773 | current-error-message-adjuster 774 | current-error-port 775 | current-eval 776 | current-evt-pseudo-random-generator 777 | current-force-delete-permissions 778 | current-future 779 | current-gc-milliseconds 780 | current-get-interaction-evt 781 | current-get-interaction-input-port 782 | current-inexact-milliseconds 783 | current-inexact-monotonic-milliseconds 784 | current-input-port 785 | current-inspector 786 | current-library-collection-links 787 | current-library-collection-paths 788 | current-load 789 | current-load-extension 790 | current-load-relative-directory 791 | current-load/use-compiled 792 | current-locale 793 | current-logger 794 | current-memory-use 795 | current-milliseconds 796 | current-module-declare-name 797 | current-module-declare-source 798 | current-module-name-resolver 799 | current-module-path-for-load 800 | current-namespace 801 | current-output-port 802 | current-parameterization 803 | current-plumber 804 | current-preserved-thread-cell-values 805 | current-print 806 | current-process-milliseconds 807 | current-prompt-read 808 | current-pseudo-random-generator 809 | current-read-interaction 810 | current-reader-guard 811 | current-readtable 812 | current-seconds 813 | current-security-guard 814 | current-subprocess-custodian-mode 815 | current-subprocess-keep-file-descriptors 816 | current-thread 817 | current-thread-group 818 | current-thread-initial-stack-size 819 | current-write-relative-directory 820 | curry 821 | curryr 822 | custodian-box-value 823 | custodian-box? 824 | custodian-limit-memory 825 | custodian-managed-list 826 | custodian-memory-accounting-available? 827 | custodian-require-memory 828 | custodian-shut-down? 829 | custodian-shutdown-all 830 | custodian? 831 | custom-print-quotable-accessor 832 | custom-print-quotable? 833 | custom-write-accessor 834 | custom-write-property-proc 835 | custom-write? 836 | date 837 | date* 838 | date*-nanosecond 839 | date*-time-zone-name 840 | date*? 841 | date-day 842 | date-dst? 843 | date-hour 844 | date-minute 845 | date-month 846 | date-second 847 | date-time-zone-offset 848 | date-week-day 849 | date-year 850 | date-year-day 851 | date? 852 | datum->syntax 853 | datum-intern-literal 854 | default-continuation-prompt-tag 855 | degrees->radians 856 | delete-directory 857 | delete-directory/files 858 | delete-file 859 | denominator 860 | dict->list 861 | dict-can-functional-set? 862 | dict-can-remove-keys? 863 | dict-clear 864 | dict-clear! 865 | dict-copy 866 | dict-count 867 | dict-empty? 868 | dict-for-each 869 | dict-has-key? 870 | dict-implements/c 871 | dict-implements? 872 | dict-iter-contract 873 | dict-iterate-first 874 | dict-iterate-key 875 | dict-iterate-next 876 | dict-iterate-value 877 | dict-key-contract 878 | dict-keys 879 | dict-map 880 | dict-mutable? 881 | dict-ref 882 | dict-ref! 883 | dict-remove 884 | dict-remove! 885 | dict-set 886 | dict-set! 887 | dict-set* 888 | dict-set*! 889 | dict-update 890 | dict-update! 891 | dict-value-contract 892 | dict-values 893 | dict? 894 | directory-exists? 895 | directory-list 896 | directory-type-bits 897 | disjoin 898 | display 899 | display-lines 900 | display-lines-to-file 901 | display-to-file 902 | displayln 903 | double-flonum? 904 | drop 905 | drop-common-prefix 906 | drop-right 907 | dropf 908 | dropf-right 909 | dump-memory-stats 910 | dup-input-port 911 | dup-output-port 912 | dynamic->* 913 | dynamic-get-field 914 | dynamic-object/c 915 | dynamic-place 916 | dynamic-place* 917 | dynamic-require 918 | dynamic-require-for-syntax 919 | dynamic-send 920 | dynamic-set-field! 921 | dynamic-wind 922 | eighth 923 | empty 924 | empty-sequence 925 | empty-stream 926 | empty? 927 | environment-variables-copy 928 | environment-variables-names 929 | environment-variables-ref 930 | environment-variables-set! 931 | environment-variables? 932 | eof 933 | eof-evt 934 | eof-object? 935 | ephemeron-value 936 | ephemeron? 937 | eprintf 938 | eq-contract-val 939 | eq-contract? 940 | eq-hash-code 941 | eq? 942 | equal-contract-val 943 | equal-contract? 944 | equal-hash-code 945 | equal-secondary-hash-code 946 | equal<%> 947 | equal? 948 | equal?/recur 949 | eqv-hash-code 950 | eqv? 951 | error 952 | error-contract->adjusted-string 953 | error-display-handler 954 | error-escape-handler 955 | error-message->adjusted-string 956 | error-message-adjuster-key 957 | error-print-context-length 958 | error-print-source-location 959 | error-print-width 960 | error-syntax->string-handler 961 | error-value->string-handler 962 | eval 963 | eval-jit-enabled 964 | eval-syntax 965 | even? 966 | evt/c 967 | evt? 968 | exact->inexact 969 | exact-ceiling 970 | exact-floor 971 | exact-integer? 972 | exact-nonnegative-integer? 973 | exact-positive-integer? 974 | exact-round 975 | exact-truncate 976 | exact? 977 | executable-yield-handler 978 | exit 979 | exit-handler 980 | exn 981 | exn-continuation-marks 982 | exn-message 983 | exn:break 984 | exn:break-continuation 985 | exn:break:hang-up 986 | exn:break:hang-up? 987 | exn:break:terminate 988 | exn:break:terminate? 989 | exn:break? 990 | exn:fail 991 | exn:fail:contract 992 | exn:fail:contract:arity 993 | exn:fail:contract:arity? 994 | exn:fail:contract:blame 995 | exn:fail:contract:blame-object 996 | exn:fail:contract:blame? 997 | exn:fail:contract:continuation 998 | exn:fail:contract:continuation? 999 | exn:fail:contract:divide-by-zero 1000 | exn:fail:contract:divide-by-zero? 1001 | exn:fail:contract:non-fixnum-result 1002 | exn:fail:contract:non-fixnum-result? 1003 | exn:fail:contract:variable 1004 | exn:fail:contract:variable-id 1005 | exn:fail:contract:variable? 1006 | exn:fail:contract? 1007 | exn:fail:filesystem 1008 | exn:fail:filesystem:errno 1009 | exn:fail:filesystem:errno-errno 1010 | exn:fail:filesystem:errno? 1011 | exn:fail:filesystem:exists 1012 | exn:fail:filesystem:exists? 1013 | exn:fail:filesystem:missing-module 1014 | exn:fail:filesystem:missing-module-path 1015 | exn:fail:filesystem:missing-module? 1016 | exn:fail:filesystem:version 1017 | exn:fail:filesystem:version? 1018 | exn:fail:filesystem? 1019 | exn:fail:network 1020 | exn:fail:network:errno 1021 | exn:fail:network:errno-errno 1022 | exn:fail:network:errno? 1023 | exn:fail:network? 1024 | exn:fail:object 1025 | exn:fail:object? 1026 | exn:fail:out-of-memory 1027 | exn:fail:out-of-memory? 1028 | exn:fail:read 1029 | exn:fail:read-srclocs 1030 | exn:fail:read:eof 1031 | exn:fail:read:eof? 1032 | exn:fail:read:non-char 1033 | exn:fail:read:non-char? 1034 | exn:fail:read? 1035 | exn:fail:syntax 1036 | exn:fail:syntax-exprs 1037 | exn:fail:syntax:missing-module 1038 | exn:fail:syntax:missing-module-path 1039 | exn:fail:syntax:missing-module? 1040 | exn:fail:syntax:unbound 1041 | exn:fail:syntax:unbound? 1042 | exn:fail:syntax? 1043 | exn:fail:unsupported 1044 | exn:fail:unsupported? 1045 | exn:fail:user 1046 | exn:fail:user? 1047 | exn:fail? 1048 | exn:misc:match? 1049 | exn:missing-module-accessor 1050 | exn:missing-module? 1051 | exn:srclocs-accessor 1052 | exn:srclocs? 1053 | exn? 1054 | exp 1055 | expand 1056 | expand-once 1057 | expand-syntax 1058 | expand-syntax-once 1059 | expand-syntax-to-top-form 1060 | expand-to-top-form 1061 | expand-user-path 1062 | explode-path 1063 | expt 1064 | externalizable<%> 1065 | failure-result/c 1066 | false? 1067 | field-names 1068 | fifo-type-bits 1069 | fifth 1070 | file->bytes 1071 | file->bytes-lines 1072 | file->lines 1073 | file->list 1074 | file->string 1075 | file->value 1076 | file-exists? 1077 | file-name-from-path 1078 | file-or-directory-identity 1079 | file-or-directory-modify-seconds 1080 | file-or-directory-permissions 1081 | file-or-directory-stat 1082 | file-or-directory-type 1083 | file-position 1084 | file-position* 1085 | file-size 1086 | file-stream-buffer-mode 1087 | file-stream-port? 1088 | file-truncate 1089 | file-type-bits 1090 | filename-extension 1091 | filesystem-change-evt 1092 | filesystem-change-evt-cancel 1093 | filesystem-change-evt? 1094 | filesystem-root-list 1095 | filter 1096 | filter-map 1097 | filter-not 1098 | filter-read-input-port 1099 | find-compiled-file-roots 1100 | find-executable-path 1101 | find-files 1102 | find-library-collection-links 1103 | find-library-collection-paths 1104 | find-relative-path 1105 | find-system-path 1106 | findf 1107 | first 1108 | first-or/c 1109 | fixnum? 1110 | flat-contract 1111 | flat-contract-predicate 1112 | flat-contract-property? 1113 | flat-contract-with-explanation 1114 | flat-contract? 1115 | flat-named-contract 1116 | flatten 1117 | floating-point-bytes->real 1118 | flonum? 1119 | floor 1120 | flush-output 1121 | fold-files 1122 | foldl 1123 | foldr 1124 | for-each 1125 | force 1126 | format 1127 | fourth 1128 | fprintf 1129 | free-identifier=? 1130 | free-label-identifier=? 1131 | free-template-identifier=? 1132 | free-transformer-identifier=? 1133 | fsemaphore-count 1134 | fsemaphore-post 1135 | fsemaphore-try-wait? 1136 | fsemaphore-wait 1137 | fsemaphore? 1138 | future 1139 | future? 1140 | futures-enabled? 1141 | gcd 1142 | generate-member-key 1143 | generate-temporaries 1144 | generic-set? 1145 | generic? 1146 | gensym 1147 | get-output-bytes 1148 | get-output-string 1149 | get-preference 1150 | get/build-late-neg-projection 1151 | get/build-val-first-projection 1152 | getenv 1153 | global-port-print-handler 1154 | group-by 1155 | group-execute-bit 1156 | group-permission-bits 1157 | group-read-bit 1158 | group-write-bit 1159 | guard-evt 1160 | handle-evt 1161 | handle-evt? 1162 | has-blame? 1163 | has-contract? 1164 | hash 1165 | hash->list 1166 | hash-clear 1167 | hash-clear! 1168 | hash-copy 1169 | hash-copy-clear 1170 | hash-count 1171 | hash-empty? 1172 | hash-ephemeron? 1173 | hash-eq? 1174 | hash-equal? 1175 | hash-eqv? 1176 | hash-for-each 1177 | hash-has-key? 1178 | hash-iterate-first 1179 | hash-iterate-key 1180 | hash-iterate-key+value 1181 | hash-iterate-next 1182 | hash-iterate-pair 1183 | hash-iterate-value 1184 | hash-keys 1185 | hash-keys-subset? 1186 | hash-map 1187 | hash-placeholder? 1188 | hash-ref 1189 | hash-ref! 1190 | hash-ref-key 1191 | hash-remove 1192 | hash-remove! 1193 | hash-set 1194 | hash-set! 1195 | hash-set* 1196 | hash-set*! 1197 | hash-strong? 1198 | hash-update 1199 | hash-update! 1200 | hash-values 1201 | hash-weak? 1202 | hash/c 1203 | hash? 1204 | hasheq 1205 | hasheqv 1206 | identifier-binding 1207 | identifier-binding-portal-syntax 1208 | identifier-binding-symbol 1209 | identifier-distinct-binding 1210 | identifier-label-binding 1211 | identifier-prune-lexical-context 1212 | identifier-prune-to-source-module 1213 | identifier-remove-from-definition-context 1214 | identifier-template-binding 1215 | identifier-transformer-binding 1216 | identifier? 1217 | identity 1218 | if/c 1219 | imag-part 1220 | immutable? 1221 | impersonate-box 1222 | impersonate-channel 1223 | impersonate-continuation-mark-key 1224 | impersonate-hash 1225 | impersonate-hash-set 1226 | impersonate-procedure 1227 | impersonate-procedure* 1228 | impersonate-prompt-tag 1229 | impersonate-struct 1230 | impersonate-vector 1231 | impersonate-vector* 1232 | impersonator-contract? 1233 | impersonator-ephemeron 1234 | impersonator-of? 1235 | impersonator-prop:application-mark 1236 | impersonator-prop:blame 1237 | impersonator-prop:contracted 1238 | impersonator-property-accessor-procedure? 1239 | impersonator-property? 1240 | impersonator? 1241 | implementation? 1242 | implementation?/c 1243 | in-bytes 1244 | in-bytes-lines 1245 | in-combinations 1246 | in-cycle 1247 | in-dict 1248 | in-dict-keys 1249 | in-dict-pairs 1250 | in-dict-values 1251 | in-directory 1252 | in-ephemeron-hash 1253 | in-ephemeron-hash-keys 1254 | in-ephemeron-hash-pairs 1255 | in-ephemeron-hash-values 1256 | in-hash 1257 | in-hash-keys 1258 | in-hash-pairs 1259 | in-hash-values 1260 | in-immutable-hash 1261 | in-immutable-hash-keys 1262 | in-immutable-hash-pairs 1263 | in-immutable-hash-values 1264 | in-immutable-set 1265 | in-inclusive-range 1266 | in-indexed 1267 | in-input-port-bytes 1268 | in-input-port-chars 1269 | in-lines 1270 | in-list 1271 | in-mlist 1272 | in-mutable-hash 1273 | in-mutable-hash-keys 1274 | in-mutable-hash-pairs 1275 | in-mutable-hash-values 1276 | in-mutable-set 1277 | in-naturals 1278 | in-parallel 1279 | in-permutations 1280 | in-port 1281 | in-producer 1282 | in-range 1283 | in-sequences 1284 | in-set 1285 | in-slice 1286 | in-stream 1287 | in-string 1288 | in-syntax 1289 | in-value 1290 | in-values*-sequence 1291 | in-values-sequence 1292 | in-vector 1293 | in-weak-hash 1294 | in-weak-hash-keys 1295 | in-weak-hash-pairs 1296 | in-weak-hash-values 1297 | in-weak-set 1298 | inclusive-range 1299 | index-of 1300 | index-where 1301 | indexes-of 1302 | indexes-where 1303 | inexact->exact 1304 | inexact-real? 1305 | inexact? 1306 | infinite? 1307 | input-port-append 1308 | input-port? 1309 | inspector-superior? 1310 | inspector? 1311 | instanceof/c 1312 | integer->char 1313 | integer->integer-bytes 1314 | integer-bytes->integer 1315 | integer-in 1316 | integer-length 1317 | integer-sqrt 1318 | integer-sqrt/remainder 1319 | integer? 1320 | interface->method-names 1321 | interface-extension? 1322 | interface? 1323 | internal-definition-context-add-scopes 1324 | internal-definition-context-binding-identifiers 1325 | internal-definition-context-introduce 1326 | internal-definition-context-seal 1327 | internal-definition-context-splice-binding-identifier 1328 | internal-definition-context? 1329 | is-a? 1330 | is-a?/c 1331 | keyword->string 1332 | keyword-apply 1333 | keyword-apply/dict 1334 | keywordbytes 1348 | list->mutable-set 1349 | list->mutable-seteq 1350 | list->mutable-seteqv 1351 | list->set 1352 | list->seteq 1353 | list->seteqv 1354 | list->string 1355 | list->vector 1356 | list->weak-set 1357 | list->weak-seteq 1358 | list->weak-seteqv 1359 | list-contract? 1360 | list-prefix? 1361 | list-ref 1362 | list-set 1363 | list-tail 1364 | list-update 1365 | list/c 1366 | list? 1367 | listen-port-number? 1368 | listof 1369 | load 1370 | load-extension 1371 | load-on-demand-enabled 1372 | load-relative 1373 | load-relative-extension 1374 | load/cd 1375 | load/use-compiled 1376 | local-expand 1377 | local-expand/capture-lifts 1378 | local-transformer-expand 1379 | local-transformer-expand/capture-lifts 1380 | locale-string-encoding 1381 | log 1382 | log-all-levels 1383 | log-level-evt 1384 | log-level? 1385 | log-max-level 1386 | log-message 1387 | log-receiver? 1388 | logger-name 1389 | logger? 1390 | magnitude 1391 | make-arity-at-least 1392 | make-base-empty-namespace 1393 | make-base-namespace 1394 | make-bytes 1395 | make-channel 1396 | make-chaperone-contract 1397 | make-continuation-mark-key 1398 | make-continuation-prompt-tag 1399 | make-contract 1400 | make-custodian 1401 | make-custodian-box 1402 | make-custom-hash 1403 | make-custom-hash-types 1404 | make-custom-set 1405 | make-custom-set-types 1406 | make-date 1407 | make-date* 1408 | make-derived-parameter 1409 | make-directory 1410 | make-directory* 1411 | make-do-sequence 1412 | make-empty-namespace 1413 | make-environment-variables 1414 | make-ephemeron 1415 | make-ephemeron-hash 1416 | make-ephemeron-hasheq 1417 | make-ephemeron-hasheqv 1418 | make-exn 1419 | make-exn:break 1420 | make-exn:break:hang-up 1421 | make-exn:break:terminate 1422 | make-exn:fail 1423 | make-exn:fail:contract 1424 | make-exn:fail:contract:arity 1425 | make-exn:fail:contract:blame 1426 | make-exn:fail:contract:continuation 1427 | make-exn:fail:contract:divide-by-zero 1428 | make-exn:fail:contract:non-fixnum-result 1429 | make-exn:fail:contract:variable 1430 | make-exn:fail:filesystem 1431 | make-exn:fail:filesystem:errno 1432 | make-exn:fail:filesystem:exists 1433 | make-exn:fail:filesystem:missing-module 1434 | make-exn:fail:filesystem:version 1435 | make-exn:fail:network 1436 | make-exn:fail:network:errno 1437 | make-exn:fail:object 1438 | make-exn:fail:out-of-memory 1439 | make-exn:fail:read 1440 | make-exn:fail:read:eof 1441 | make-exn:fail:read:non-char 1442 | make-exn:fail:syntax 1443 | make-exn:fail:syntax:missing-module 1444 | make-exn:fail:syntax:unbound 1445 | make-exn:fail:unsupported 1446 | make-exn:fail:user 1447 | make-file-or-directory-link 1448 | make-flat-contract 1449 | make-fsemaphore 1450 | make-generic 1451 | make-handle-get-preference-locked 1452 | make-hash 1453 | make-hash-placeholder 1454 | make-hasheq 1455 | make-hasheq-placeholder 1456 | make-hasheqv 1457 | make-hasheqv-placeholder 1458 | make-immutable-custom-hash 1459 | make-immutable-hash 1460 | make-immutable-hasheq 1461 | make-immutable-hasheqv 1462 | make-impersonator-property 1463 | make-input-port 1464 | make-input-port/read-to-peek 1465 | make-inspector 1466 | make-interned-syntax-introducer 1467 | make-keyword-procedure 1468 | make-known-char-range-list 1469 | make-limited-input-port 1470 | make-list 1471 | make-lock-file-name 1472 | make-log-receiver 1473 | make-logger 1474 | make-mixin-contract 1475 | make-mutable-custom-set 1476 | make-none/c 1477 | make-object 1478 | make-output-port 1479 | make-parameter 1480 | make-parent-directory* 1481 | make-phantom-bytes 1482 | make-pipe 1483 | make-pipe-with-specials 1484 | make-placeholder 1485 | make-plumber 1486 | make-polar 1487 | make-portal-syntax 1488 | make-prefab-struct 1489 | make-primitive-class 1490 | make-proj-contract 1491 | make-pseudo-random-generator 1492 | make-reader-graph 1493 | make-readtable 1494 | make-rectangular 1495 | make-rename-transformer 1496 | make-resolved-module-path 1497 | make-security-guard 1498 | make-semaphore 1499 | make-set!-transformer 1500 | make-shared-bytes 1501 | make-sibling-inspector 1502 | make-special-comment 1503 | make-srcloc 1504 | make-string 1505 | make-struct-field-accessor 1506 | make-struct-field-mutator 1507 | make-struct-type 1508 | make-struct-type-property 1509 | make-syntax-delta-introducer 1510 | make-syntax-introducer 1511 | make-temporary-directory 1512 | make-temporary-directory* 1513 | make-temporary-file 1514 | make-temporary-file* 1515 | make-tentative-pretty-print-output-port 1516 | make-thread-cell 1517 | make-thread-group 1518 | make-vector 1519 | make-weak-box 1520 | make-weak-custom-hash 1521 | make-weak-custom-set 1522 | make-weak-hash 1523 | make-weak-hasheq 1524 | make-weak-hasheqv 1525 | make-will-executor 1526 | map 1527 | match-equality-test 1528 | matches-arity-exactly? 1529 | max 1530 | mcar 1531 | mcdr 1532 | mcons 1533 | member 1534 | member-name-key-hash-code 1535 | member-name-key=? 1536 | member-name-key? 1537 | memf 1538 | memory-order-acquire 1539 | memory-order-release 1540 | memq 1541 | memv 1542 | merge-input 1543 | method-in-interface? 1544 | min 1545 | mixin-contract 1546 | module->exports 1547 | module->imports 1548 | module->indirect-exports 1549 | module->language-info 1550 | module->namespace 1551 | module->realm 1552 | module-compiled-cross-phase-persistent? 1553 | module-compiled-exports 1554 | module-compiled-imports 1555 | module-compiled-indirect-exports 1556 | module-compiled-language-info 1557 | module-compiled-name 1558 | module-compiled-realm 1559 | module-compiled-submodules 1560 | module-declared? 1561 | module-path-index-join 1562 | module-path-index-resolve 1563 | module-path-index-split 1564 | module-path-index-submodule 1565 | module-path-index? 1566 | module-path? 1567 | module-predefined? 1568 | module-provide-protected? 1569 | modulo 1570 | mpair? 1571 | mutable-set 1572 | mutable-seteq 1573 | mutable-seteqv 1574 | n->th 1575 | nack-guard-evt 1576 | namespace-anchor->empty-namespace 1577 | namespace-anchor->namespace 1578 | namespace-anchor? 1579 | namespace-attach-module 1580 | namespace-attach-module-declaration 1581 | namespace-base-phase 1582 | namespace-call-with-registry-lock 1583 | namespace-mapped-symbols 1584 | namespace-module-identifier 1585 | namespace-module-registry 1586 | namespace-require 1587 | namespace-require/constant 1588 | namespace-require/copy 1589 | namespace-require/expansion-time 1590 | namespace-set-variable-value! 1591 | namespace-symbol->identifier 1592 | namespace-syntax-introduce 1593 | namespace-undefine-variable! 1594 | namespace-unprotect-module 1595 | namespace-variable-value 1596 | namespace? 1597 | nan? 1598 | natural-number/c 1599 | natural? 1600 | negate 1601 | negative-integer? 1602 | negative? 1603 | never-evt 1604 | new-∀/c 1605 | new-∃/c 1606 | newline 1607 | ninth 1608 | non-empty-listof 1609 | non-empty-string? 1610 | none/c 1611 | nonnegative-integer? 1612 | nonpositive-integer? 1613 | normal-case-path 1614 | normalize-arity 1615 | normalize-path 1616 | normalized-arity? 1617 | not 1618 | not/c 1619 | null 1620 | null? 1621 | number->string 1622 | number? 1623 | numerator 1624 | object% 1625 | object->vector 1626 | object-info 1627 | object-interface 1628 | object-method-arity-includes? 1629 | object-name 1630 | object-or-false=? 1631 | object=-hash-code 1632 | object=? 1633 | object? 1634 | odd? 1635 | one-of/c 1636 | open-input-bytes 1637 | open-input-file 1638 | open-input-output-file 1639 | open-input-string 1640 | open-output-bytes 1641 | open-output-file 1642 | open-output-nowhere 1643 | open-output-string 1644 | or/c 1645 | order-of-magnitude 1646 | ormap 1647 | other-execute-bit 1648 | other-permission-bits 1649 | other-read-bit 1650 | other-write-bit 1651 | output-port? 1652 | pair? 1653 | parameter-procedure=? 1654 | parameter/c 1655 | parameter? 1656 | parameterization? 1657 | parse-command-line 1658 | partition 1659 | path->bytes 1660 | path->complete-path 1661 | path->directory-path 1662 | path->string 1663 | path-add-extension 1664 | path-add-suffix 1665 | path-convention-type 1666 | path-element->bytes 1667 | path-element->string 1668 | path-element? 1669 | path-for-some-system? 1670 | path-get-extension 1671 | path-has-extension? 1672 | path-list-string->path-list 1673 | path-only 1674 | path-replace-extension 1675 | path-replace-suffix 1676 | path-string? 1677 | pathbytes 1725 | port->bytes-lines 1726 | port->lines 1727 | port->list 1728 | port->string 1729 | port-closed-evt 1730 | port-closed? 1731 | port-commit-peeked 1732 | port-count-lines! 1733 | port-count-lines-enabled 1734 | port-counts-lines? 1735 | port-display-handler 1736 | port-file-identity 1737 | port-file-unlock 1738 | port-next-location 1739 | port-number? 1740 | port-print-handler 1741 | port-progress-evt 1742 | port-provides-progress-evts? 1743 | port-read-handler 1744 | port-try-file-lock? 1745 | port-waiting-peer? 1746 | port-write-handler 1747 | port-writes-atomic? 1748 | port-writes-special? 1749 | port? 1750 | portal-syntax-content 1751 | portal-syntax? 1752 | positive-integer? 1753 | positive? 1754 | predicate/c 1755 | prefab-key->struct-type 1756 | prefab-key? 1757 | prefab-struct-key 1758 | preferences-lock-file-mode 1759 | pregexp 1760 | pregexp? 1761 | pretty-display 1762 | pretty-format 1763 | pretty-print 1764 | pretty-print-.-symbol-without-bars 1765 | pretty-print-abbreviate-read-macros 1766 | pretty-print-columns 1767 | pretty-print-current-style-table 1768 | pretty-print-depth 1769 | pretty-print-exact-as-decimal 1770 | pretty-print-extend-style-table 1771 | pretty-print-handler 1772 | pretty-print-newline 1773 | pretty-print-post-print-hook 1774 | pretty-print-pre-print-hook 1775 | pretty-print-print-hook 1776 | pretty-print-print-line 1777 | pretty-print-remap-stylable 1778 | pretty-print-show-inexactness 1779 | pretty-print-size-hook 1780 | pretty-print-style-table? 1781 | pretty-printing 1782 | pretty-write 1783 | primitive-closure? 1784 | primitive-result-arity 1785 | primitive? 1786 | print 1787 | print-as-expression 1788 | print-boolean-long-form 1789 | print-box 1790 | print-graph 1791 | print-hash-table 1792 | print-mpair-curly-braces 1793 | print-pair-curly-braces 1794 | print-reader-abbreviations 1795 | print-struct 1796 | print-syntax-width 1797 | print-unreadable 1798 | print-value-columns 1799 | print-vector-length 1800 | printable/c 1801 | printable<%> 1802 | printf 1803 | println 1804 | procedure->method 1805 | procedure-arity 1806 | procedure-arity-includes/c 1807 | procedure-arity-includes? 1808 | procedure-arity-mask 1809 | procedure-arity? 1810 | procedure-closure-contents-eq? 1811 | procedure-extract-target 1812 | procedure-impersonator*? 1813 | procedure-keywords 1814 | procedure-realm 1815 | procedure-reduce-arity 1816 | procedure-reduce-arity-mask 1817 | procedure-reduce-keyword-arity 1818 | procedure-reduce-keyword-arity-mask 1819 | procedure-rename 1820 | procedure-result-arity 1821 | procedure-specialize 1822 | procedure-struct-type? 1823 | procedure? 1824 | process 1825 | process* 1826 | process*/ports 1827 | process/ports 1828 | processor-count 1829 | progress-evt? 1830 | promise-forced? 1831 | promise-running? 1832 | promise/c 1833 | promise/name? 1834 | promise? 1835 | prop:arity-string 1836 | prop:arrow-contract 1837 | prop:arrow-contract-get-info 1838 | prop:arrow-contract? 1839 | prop:authentic 1840 | prop:blame 1841 | prop:chaperone-contract 1842 | prop:checked-procedure 1843 | prop:contract 1844 | prop:contracted 1845 | prop:custom-print-quotable 1846 | prop:custom-write 1847 | prop:dict 1848 | prop:dict/contract 1849 | prop:equal+hash 1850 | prop:evt 1851 | prop:exn:missing-module 1852 | prop:exn:srclocs 1853 | prop:expansion-contexts 1854 | prop:flat-contract 1855 | prop:impersonator-of 1856 | prop:input-port 1857 | prop:liberal-define-context 1858 | prop:object-name 1859 | prop:orc-contract 1860 | prop:orc-contract-get-subcontracts 1861 | prop:orc-contract? 1862 | prop:output-port 1863 | prop:place-location 1864 | prop:procedure 1865 | prop:recursive-contract 1866 | prop:recursive-contract-unroll 1867 | prop:recursive-contract? 1868 | prop:rename-transformer 1869 | prop:sealed 1870 | prop:sequence 1871 | prop:set!-transformer 1872 | prop:stream 1873 | proper-subset? 1874 | property/c 1875 | pseudo-random-generator->vector 1876 | pseudo-random-generator-vector? 1877 | pseudo-random-generator? 1878 | put-preferences 1879 | putenv 1880 | quotient 1881 | quotient/remainder 1882 | radians->degrees 1883 | raise 1884 | raise-argument-error 1885 | raise-argument-error* 1886 | raise-arguments-error 1887 | raise-arguments-error* 1888 | raise-arity-error 1889 | raise-arity-error* 1890 | raise-arity-mask-error 1891 | raise-arity-mask-error* 1892 | raise-blame-error 1893 | raise-contract-error 1894 | raise-mismatch-error 1895 | raise-not-cons-blame-error 1896 | raise-range-error 1897 | raise-range-error* 1898 | raise-result-arity-error 1899 | raise-result-arity-error* 1900 | raise-result-error 1901 | raise-result-error* 1902 | raise-syntax-error 1903 | raise-type-error 1904 | raise-user-error 1905 | random 1906 | random-seed 1907 | range 1908 | rational? 1909 | rationalize 1910 | read 1911 | read-accept-bar-quote 1912 | read-accept-box 1913 | read-accept-compiled 1914 | read-accept-dot 1915 | read-accept-graph 1916 | read-accept-infix-dot 1917 | read-accept-lang 1918 | read-accept-quasiquote 1919 | read-accept-reader 1920 | read-byte 1921 | read-byte-or-special 1922 | read-bytes 1923 | read-bytes! 1924 | read-bytes!-evt 1925 | read-bytes-avail! 1926 | read-bytes-avail!* 1927 | read-bytes-avail!-evt 1928 | read-bytes-avail!/enable-break 1929 | read-bytes-evt 1930 | read-bytes-line 1931 | read-bytes-line-evt 1932 | read-case-sensitive 1933 | read-cdot 1934 | read-char 1935 | read-char-or-special 1936 | read-curly-brace-as-paren 1937 | read-curly-brace-with-tag 1938 | read-decimal-as-inexact 1939 | read-eval-print-loop 1940 | read-installation-configuration-table 1941 | read-language 1942 | read-line 1943 | read-line-evt 1944 | read-on-demand-source 1945 | read-single-flonum 1946 | read-square-bracket-as-paren 1947 | read-square-bracket-with-tag 1948 | read-string 1949 | read-string! 1950 | read-string!-evt 1951 | read-string-evt 1952 | read-syntax 1953 | read-syntax-accept-graph 1954 | read-syntax/recursive 1955 | read/recursive 1956 | readtable-mapping 1957 | readtable? 1958 | real->decimal-string 1959 | real->double-flonum 1960 | real->floating-point-bytes 1961 | real->single-flonum 1962 | real-in 1963 | real-part 1964 | real? 1965 | reencode-input-port 1966 | reencode-output-port 1967 | regexp 1968 | regexp-match 1969 | regexp-match* 1970 | regexp-match-evt 1971 | regexp-match-exact? 1972 | regexp-match-peek 1973 | regexp-match-peek-immediate 1974 | regexp-match-peek-positions 1975 | regexp-match-peek-positions* 1976 | regexp-match-peek-positions-immediate 1977 | regexp-match-peek-positions-immediate/end 1978 | regexp-match-peek-positions/end 1979 | regexp-match-positions 1980 | regexp-match-positions* 1981 | regexp-match-positions/end 1982 | regexp-match/end 1983 | regexp-match? 1984 | regexp-max-lookbehind 1985 | regexp-quote 1986 | regexp-replace 1987 | regexp-replace* 1988 | regexp-replace-quote 1989 | regexp-replaces 1990 | regexp-split 1991 | regexp-try-match 1992 | regexp? 1993 | regular-file-type-bits 1994 | relative-path? 1995 | relocate-input-port 1996 | relocate-output-port 1997 | remainder 1998 | remf 1999 | remf* 2000 | remove 2001 | remove* 2002 | remove-duplicates 2003 | remq 2004 | remq* 2005 | remv 2006 | remv* 2007 | rename-contract 2008 | rename-file-or-directory 2009 | rename-transformer-target 2010 | rename-transformer? 2011 | replace-evt 2012 | reroot-path 2013 | resolve-path 2014 | resolved-module-path-name 2015 | resolved-module-path? 2016 | rest 2017 | reverse 2018 | round 2019 | second 2020 | seconds->date 2021 | security-guard? 2022 | semaphore-peek-evt 2023 | semaphore-peek-evt? 2024 | semaphore-post 2025 | semaphore-try-wait? 2026 | semaphore-wait 2027 | semaphore-wait/enable-break 2028 | semaphore? 2029 | sequence->list 2030 | sequence->stream 2031 | sequence-add-between 2032 | sequence-andmap 2033 | sequence-append 2034 | sequence-count 2035 | sequence-filter 2036 | sequence-fold 2037 | sequence-for-each 2038 | sequence-generate 2039 | sequence-generate* 2040 | sequence-length 2041 | sequence-map 2042 | sequence-ormap 2043 | sequence-ref 2044 | sequence-tail 2045 | sequence/c 2046 | sequence? 2047 | set 2048 | set!-transformer-procedure 2049 | set!-transformer? 2050 | set->list 2051 | set->stream 2052 | set-add 2053 | set-add! 2054 | set-box! 2055 | set-box*! 2056 | set-clear 2057 | set-clear! 2058 | set-copy 2059 | set-copy-clear 2060 | set-count 2061 | set-empty? 2062 | set-eq? 2063 | set-equal? 2064 | set-eqv? 2065 | set-first 2066 | set-for-each 2067 | set-group-id-bit 2068 | set-implements/c 2069 | set-implements? 2070 | set-intersect 2071 | set-intersect! 2072 | set-map 2073 | set-mcar! 2074 | set-mcdr! 2075 | set-member? 2076 | set-mutable? 2077 | set-phantom-bytes! 2078 | set-port-next-location! 2079 | set-remove 2080 | set-remove! 2081 | set-rest 2082 | set-subtract 2083 | set-subtract! 2084 | set-symmetric-difference 2085 | set-symmetric-difference! 2086 | set-union 2087 | set-union! 2088 | set-user-id-bit 2089 | set-weak? 2090 | set/c 2091 | set=? 2092 | set? 2093 | seteq 2094 | seteqv 2095 | seventh 2096 | sgn 2097 | sha1-bytes 2098 | sha224-bytes 2099 | sha256-bytes 2100 | shared-bytes 2101 | shell-execute 2102 | shrink-path-wrt 2103 | shuffle 2104 | simple-form-path 2105 | simplify-path 2106 | sin 2107 | single-flonum-available? 2108 | single-flonum? 2109 | sinh 2110 | sixth 2111 | skip-projection-wrapper? 2112 | sleep 2113 | socket-type-bits 2114 | some-system-path->string 2115 | sort 2116 | special-comment-value 2117 | special-comment? 2118 | special-filter-input-port 2119 | split-at 2120 | split-at-right 2121 | split-common-prefix 2122 | split-path 2123 | splitf-at 2124 | splitf-at-right 2125 | sqr 2126 | sqrt 2127 | srcloc 2128 | srcloc->string 2129 | srcloc-column 2130 | srcloc-line 2131 | srcloc-position 2132 | srcloc-source 2133 | srcloc-span 2134 | srcloc? 2135 | sticky-bit 2136 | stop-after 2137 | stop-before 2138 | stream->list 2139 | stream-add-between 2140 | stream-andmap 2141 | stream-append 2142 | stream-count 2143 | stream-empty? 2144 | stream-filter 2145 | stream-first 2146 | stream-fold 2147 | stream-for-each 2148 | stream-force 2149 | stream-length 2150 | stream-map 2151 | stream-ormap 2152 | stream-ref 2153 | stream-rest 2154 | stream-tail 2155 | stream-take 2156 | stream/c 2157 | stream? 2158 | string 2159 | string->bytes/latin-1 2160 | string->bytes/locale 2161 | string->bytes/utf-8 2162 | string->immutable-string 2163 | string->keyword 2164 | string->list 2165 | string->number 2166 | string->path 2167 | string->path-element 2168 | string->some-system-path 2169 | string->symbol 2170 | string->uninterned-symbol 2171 | string->unreadable-symbol 2172 | string-append 2173 | string-append* 2174 | string-append-immutable 2175 | string-ci<=? 2176 | string-ci=? 2179 | string-ci>? 2180 | string-contains? 2181 | string-copy 2182 | string-copy! 2183 | string-downcase 2184 | string-environment-variable-name? 2185 | string-fill! 2186 | string-foldcase 2187 | string-join 2188 | string-len/c 2189 | string-length 2190 | string-locale-ci? 2193 | string-locale-downcase 2194 | string-locale-upcase 2195 | string-locale? 2198 | string-no-nuls? 2199 | string-normalize-nfc 2200 | string-normalize-nfd 2201 | string-normalize-nfkc 2202 | string-normalize-nfkd 2203 | string-normalize-spaces 2204 | string-port? 2205 | string-prefix? 2206 | string-ref 2207 | string-replace 2208 | string-set! 2209 | string-split 2210 | string-suffix? 2211 | string-titlecase 2212 | string-trim 2213 | string-upcase 2214 | string-utf-8-length 2215 | string<=? 2216 | string=? 2219 | string>? 2220 | string? 2221 | struct->vector 2222 | struct-accessor-procedure? 2223 | struct-constructor-procedure? 2224 | struct-info 2225 | struct-mutator-procedure? 2226 | struct-predicate-procedure? 2227 | struct-type-authentic? 2228 | struct-type-info 2229 | struct-type-make-constructor 2230 | struct-type-make-predicate 2231 | struct-type-property-accessor-procedure? 2232 | struct-type-property-predicate-procedure? 2233 | struct-type-property/c 2234 | struct-type-property? 2235 | struct-type-sealed? 2236 | struct-type? 2237 | struct:arity-at-least 2238 | struct:arrow-contract-info 2239 | struct:date 2240 | struct:date* 2241 | struct:exn 2242 | struct:exn:break 2243 | struct:exn:break:hang-up 2244 | struct:exn:break:terminate 2245 | struct:exn:fail 2246 | struct:exn:fail:contract 2247 | struct:exn:fail:contract:arity 2248 | struct:exn:fail:contract:blame 2249 | struct:exn:fail:contract:continuation 2250 | struct:exn:fail:contract:divide-by-zero 2251 | struct:exn:fail:contract:non-fixnum-result 2252 | struct:exn:fail:contract:variable 2253 | struct:exn:fail:filesystem 2254 | struct:exn:fail:filesystem:errno 2255 | struct:exn:fail:filesystem:exists 2256 | struct:exn:fail:filesystem:missing-module 2257 | struct:exn:fail:filesystem:version 2258 | struct:exn:fail:network 2259 | struct:exn:fail:network:errno 2260 | struct:exn:fail:object 2261 | struct:exn:fail:out-of-memory 2262 | struct:exn:fail:read 2263 | struct:exn:fail:read:eof 2264 | struct:exn:fail:read:non-char 2265 | struct:exn:fail:syntax 2266 | struct:exn:fail:syntax:missing-module 2267 | struct:exn:fail:syntax:unbound 2268 | struct:exn:fail:unsupported 2269 | struct:exn:fail:user 2270 | struct:srcloc 2271 | struct? 2272 | sub1 2273 | subbytes 2274 | subclass? 2275 | subclass?/c 2276 | subprocess 2277 | subprocess-group-enabled 2278 | subprocess-kill 2279 | subprocess-pid 2280 | subprocess-status 2281 | subprocess-wait 2282 | subprocess? 2283 | subset? 2284 | substring 2285 | suggest/c 2286 | symbol->string 2287 | symbol-interned? 2288 | symbol-unreadable? 2289 | symboldatum 2299 | syntax->list 2300 | syntax-arm 2301 | syntax-binding-set 2302 | syntax-binding-set->syntax 2303 | syntax-binding-set-extend 2304 | syntax-binding-set? 2305 | syntax-column 2306 | syntax-debug-info 2307 | syntax-deserialize 2308 | syntax-disarm 2309 | syntax-e 2310 | syntax-line 2311 | syntax-local-apply-transformer 2312 | syntax-local-bind-syntaxes 2313 | syntax-local-certifier 2314 | syntax-local-context 2315 | syntax-local-expand-expression 2316 | syntax-local-get-shadower 2317 | syntax-local-identifier-as-binding 2318 | syntax-local-introduce 2319 | syntax-local-lift-context 2320 | syntax-local-lift-expression 2321 | syntax-local-lift-module 2322 | syntax-local-lift-module-end-declaration 2323 | syntax-local-lift-provide 2324 | syntax-local-lift-require 2325 | syntax-local-lift-values-expression 2326 | syntax-local-make-definition-context 2327 | syntax-local-make-delta-introducer 2328 | syntax-local-module-defined-identifiers 2329 | syntax-local-module-exports 2330 | syntax-local-module-interned-scope-symbols 2331 | syntax-local-module-required-identifiers 2332 | syntax-local-name 2333 | syntax-local-phase-level 2334 | syntax-local-submodules 2335 | syntax-local-transforming-module-provides? 2336 | syntax-local-value 2337 | syntax-local-value/immediate 2338 | syntax-original? 2339 | syntax-position 2340 | syntax-property 2341 | syntax-property-preserved? 2342 | syntax-property-remove 2343 | syntax-property-symbol-keys 2344 | syntax-protect 2345 | syntax-rearm 2346 | syntax-recertify 2347 | syntax-serialize 2348 | syntax-shift-phase-level 2349 | syntax-source 2350 | syntax-source-module 2351 | syntax-span 2352 | syntax-taint 2353 | syntax-tainted? 2354 | syntax-track-origin 2355 | syntax-transforming-module-expression? 2356 | syntax-transforming-with-lifts? 2357 | syntax-transforming? 2358 | syntax/c 2359 | syntax? 2360 | system 2361 | system* 2362 | system*/exit-code 2363 | system-big-endian? 2364 | system-idle-evt 2365 | system-language+country 2366 | system-library-subpath 2367 | system-path-convention-type 2368 | system-type 2369 | system/exit-code 2370 | tail-marks-match? 2371 | take 2372 | take-common-prefix 2373 | take-right 2374 | takef 2375 | takef-right 2376 | tan 2377 | tanh 2378 | tcp-abandon-port 2379 | tcp-accept 2380 | tcp-accept-evt 2381 | tcp-accept-ready? 2382 | tcp-accept/enable-break 2383 | tcp-addresses 2384 | tcp-close 2385 | tcp-connect 2386 | tcp-connect/enable-break 2387 | tcp-listen 2388 | tcp-listener? 2389 | tcp-port? 2390 | tentative-pretty-print-port-cancel 2391 | tentative-pretty-print-port-transfer 2392 | tenth 2393 | terminal-port? 2394 | the-unsupplied-arg 2395 | third 2396 | thread 2397 | thread-cell-ref 2398 | thread-cell-set! 2399 | thread-cell-values? 2400 | thread-cell? 2401 | thread-dead-evt 2402 | thread-dead? 2403 | thread-group? 2404 | thread-receive 2405 | thread-receive-evt 2406 | thread-resume 2407 | thread-resume-evt 2408 | thread-rewind-receive 2409 | thread-running? 2410 | thread-send 2411 | thread-suspend 2412 | thread-suspend-evt 2413 | thread-try-receive 2414 | thread-wait 2415 | thread/suspend-to-kill 2416 | thread? 2417 | time-apply 2418 | touch 2419 | transplant-input-port 2420 | transplant-output-port 2421 | true 2422 | truncate 2423 | udp-addresses 2424 | udp-bind! 2425 | udp-bound? 2426 | udp-close 2427 | udp-connect! 2428 | udp-connected? 2429 | udp-multicast-interface 2430 | udp-multicast-join-group! 2431 | udp-multicast-leave-group! 2432 | udp-multicast-loopback? 2433 | udp-multicast-set-interface! 2434 | udp-multicast-set-loopback! 2435 | udp-multicast-set-ttl! 2436 | udp-multicast-ttl 2437 | udp-open-socket 2438 | udp-receive! 2439 | udp-receive!* 2440 | udp-receive!-evt 2441 | udp-receive!/enable-break 2442 | udp-receive-ready-evt 2443 | udp-send 2444 | udp-send* 2445 | udp-send-evt 2446 | udp-send-ready-evt 2447 | udp-send-to 2448 | udp-send-to* 2449 | udp-send-to-evt 2450 | udp-send-to/enable-break 2451 | udp-send/enable-break 2452 | udp-set-receive-buffer-size! 2453 | udp-set-ttl! 2454 | udp-ttl 2455 | udp? 2456 | unbox 2457 | unbox* 2458 | uncaught-exception-handler 2459 | unit? 2460 | unquoted-printing-string 2461 | unquoted-printing-string-value 2462 | unquoted-printing-string? 2463 | unspecified-dom 2464 | unsupplied-arg? 2465 | use-collection-link-paths 2466 | use-compiled-file-check 2467 | use-compiled-file-paths 2468 | use-user-specific-search-paths 2469 | user-execute-bit 2470 | user-permission-bits 2471 | user-read-bit 2472 | user-write-bit 2473 | value-blame 2474 | value-contract 2475 | values 2476 | variable-reference->empty-namespace 2477 | variable-reference->module-base-phase 2478 | variable-reference->module-declaration-inspector 2479 | variable-reference->module-path-index 2480 | variable-reference->module-source 2481 | variable-reference->namespace 2482 | variable-reference->phase 2483 | variable-reference->resolved-module-path 2484 | variable-reference-constant? 2485 | variable-reference-from-unsafe? 2486 | variable-reference? 2487 | vector 2488 | vector*-length 2489 | vector*-ref 2490 | vector*-set! 2491 | vector->immutable-vector 2492 | vector->list 2493 | vector->pseudo-random-generator 2494 | vector->pseudo-random-generator! 2495 | vector->values 2496 | vector-append 2497 | vector-argmax 2498 | vector-argmin 2499 | vector-cas! 2500 | vector-copy 2501 | vector-copy! 2502 | vector-count 2503 | vector-drop 2504 | vector-drop-right 2505 | vector-empty? 2506 | vector-fill! 2507 | vector-filter 2508 | vector-filter-not 2509 | vector-immutable 2510 | vector-immutable/c 2511 | vector-immutableof 2512 | vector-length 2513 | vector-map 2514 | vector-map! 2515 | vector-member 2516 | vector-memq 2517 | vector-memv 2518 | vector-ref 2519 | vector-set! 2520 | vector-set*! 2521 | vector-set-performance-stats! 2522 | vector-sort 2523 | vector-sort! 2524 | vector-split-at 2525 | vector-split-at-right 2526 | vector-take 2527 | vector-take-right 2528 | vector/c 2529 | vector? 2530 | vectorof 2531 | version 2532 | void 2533 | void? 2534 | weak-box-value 2535 | weak-box? 2536 | weak-set 2537 | weak-seteq 2538 | weak-seteqv 2539 | will-execute 2540 | will-executor? 2541 | will-register 2542 | will-try-execute 2543 | with-input-from-bytes 2544 | with-input-from-file 2545 | with-input-from-string 2546 | with-output-to-bytes 2547 | with-output-to-file 2548 | with-output-to-string 2549 | would-be-future 2550 | wrap-evt 2551 | writable<%> 2552 | write 2553 | write-byte 2554 | write-bytes 2555 | write-bytes-avail 2556 | write-bytes-avail* 2557 | write-bytes-avail-evt 2558 | write-bytes-avail/enable-break 2559 | write-char 2560 | write-special 2561 | write-special-avail* 2562 | write-special-evt 2563 | write-string 2564 | write-to-file 2565 | writeln 2566 | xor 2567 | zero? 2568 | ~.a 2569 | ~.s 2570 | ~.v 2571 | ~a 2572 | ~e 2573 | ~r 2574 | ~s 2575 | ~v 2576 | /C5"brown" 2577 | ' 2578 | ( 2579 | ) 2580 | , 2581 | @ 2582 | [ 2583 | ] 2584 | ` 2585 | -------------------------------------------------------------------------------- /read.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | (require (planet dyoo/while-loop) 3 | "etc.rkt") 4 | 5 | (provide block-comment-symbol 6 | expr-comment-symbol 7 | line-comment-symbol 8 | quasiquote-symbol 9 | quasisyntax-symbol 10 | quote-symbol 11 | read-module 12 | syntax-symbol 13 | unquote-splicing-symbol 14 | unquote-symbol 15 | unsyntax-splicing-symbol 16 | unsyntax-symbol) 17 | 18 | (define (block-comment) 19 | (list* (read-char) 20 | (read-char) 21 | (let loop () 22 | (cond 23 | ((eof-object? (peek-char)) 24 | (error "unterminated block comment")) 25 | ((equal? (peek-string 2 0) "#|") 26 | (cons (block-comment) (loop))) 27 | ((equal? (peek-string 2 0) "|#") 28 | (list (read-char) (read-char))) 29 | (else 30 | (cons (read-char) (loop))))))) 31 | 32 | (define (identifier) 33 | (list->string (while/list (subsequent? (peek-char)) 34 | (read-char)))) 35 | 36 | (define (initial? c) 37 | (or (char-alphabetic? c) 38 | (special-initial? c))) 39 | 40 | (define (peek? s (skip 0)) 41 | (define c (peek-char (current-input-port) skip)) 42 | (and (not (eof-object? c)) 43 | (char=? c (string-ref s 0)))) 44 | 45 | (define (read*) 46 | (whitespace) 47 | (cond 48 | ((eof-object? (peek-char)) 49 | (peek-char)) 50 | ((peek? "#") 51 | (cond 52 | ((equal? (peek-string 5 0) "#lang") 53 | `(,line-comment-symbol 54 | ,(read-line))) 55 | ((or (equal? (peek-string 3 0) "#! ") 56 | (equal? (peek-string 3 0) "#!/")) 57 | (list line-comment-symbol 58 | (string-append* (let loop () 59 | (define s (read-line)) 60 | (if (string-suffix? s "\\") 61 | (cons (string-append s "\n") (loop)) 62 | (list s)))))) 63 | ((peek? "'" 1) 64 | (read-char) 65 | (read-char) 66 | (list syntax-symbol (read*))) 67 | ((peek? "," 1) 68 | (read-char) 69 | (read-char) 70 | (if (peek? "@") 71 | (begin 72 | (read-char) 73 | (list unsyntax-splicing-symbol (read*))) 74 | (list unsyntax-symbol (read*)))) 75 | ((peek? ";" 1) 76 | (read-char) 77 | (read-char) 78 | (list expr-comment-symbol (read*))) 79 | ((peek? "`" 1) 80 | (read-char) 81 | (read-char) 82 | (list quasisyntax-symbol (read*))) 83 | ((peek? "|" 1) 84 | (list block-comment-symbol (list->string (flatten (block-comment))))) 85 | (else 86 | (read)))) 87 | ((peek? "'") 88 | (read-char) 89 | (list quote-symbol (read*))) 90 | ((peek? "(") 91 | (read-char) 92 | (let loop () 93 | (whitespace) 94 | (cond 95 | ((eof-object? (peek-char)) 96 | (error "unterminated list")) 97 | ((peek? ")") 98 | (read-char) 99 | '()) 100 | ((peek? ".") 101 | (let ((s (identifier))) 102 | (if (string=? s ".") 103 | (let ((x (read))) 104 | (while (not (peek? ")")) 105 | (whitespace) 106 | (cond 107 | ((eof-object? (peek-char)) 108 | (error "expected ')'")) 109 | ((peek? ";") 110 | (read-line)))) 111 | (read-char) 112 | x) 113 | (cons (string->symbol s) (loop))))) 114 | (else 115 | (cons (read*) (loop)))))) 116 | ((peek? ",") 117 | (read-char) 118 | (if (peek? "@") 119 | (begin 120 | (read-char) 121 | (list unquote-splicing-symbol (read*))) 122 | (list unquote-symbol (read*)))) 123 | ((peek? ";") 124 | (read-char) 125 | (list line-comment-symbol 126 | (string-append (if (and (not (eof-object? (peek-char))) 127 | (char-alphabetic? (peek-char))) 128 | "; " 129 | ";") 130 | (read-line)))) 131 | ((peek? "`") 132 | (read-char) 133 | (list quasiquote-symbol (read*))) 134 | (else 135 | (read)))) 136 | 137 | (define (read-module) 138 | (define v (read*)) 139 | (if (eof-object? v) 140 | '() 141 | (cons v (read-module)))) 142 | 143 | (define (special-initial? c) 144 | (string-contains? "!#$%&*/:<=>?^_~" (make-string 1 c))) 145 | 146 | (define (special-subsequent? c) 147 | (string-contains? "+-.@" (make-string 1 c))) 148 | 149 | (define (subsequent? c) 150 | (or (initial? c) 151 | (char-numeric? c) 152 | (special-subsequent? c))) 153 | 154 | (define-syntax while/list 155 | (syntax-rules () 156 | ((_ a b ...) 157 | (let loop () 158 | (if a 159 | (cons (let () 160 | b ...) 161 | (loop)) 162 | '()))))) 163 | 164 | (define (whitespace) 165 | (while (and (not (eof-object? (peek-char))) 166 | (char-whitespace? (peek-char))) 167 | (read-char))) 168 | 169 | (define block-comment-symbol (gensym)) 170 | (define expr-comment-symbol (gensym)) 171 | (define line-comment-symbol (gensym)) 172 | (define quasiquote-symbol (gensym)) 173 | (define quasisyntax-symbol (gensym)) 174 | (define quote-symbol (gensym)) 175 | (define syntax-symbol (gensym)) 176 | (define unquote-splicing-symbol (gensym)) 177 | (define unquote-symbol (gensym)) 178 | (define unsyntax-splicing-symbol (gensym)) 179 | (define unsyntax-symbol (gensym)) 180 | -------------------------------------------------------------------------------- /sort.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | (require "etc.rkt" 3 | "read.rkt") 4 | 5 | (provide sort-module) 6 | 7 | (define-syntax for/sublists 8 | (syntax-rules () 9 | ((_ ((x x1)) b ...) 10 | (let loop ((x x1)) 11 | (if (atom? x) 12 | x 13 | (begin 14 | (set! x 15 | (for/list ((y x)) 16 | (loop y))) 17 | b ...)))))) 18 | 19 | (define (fragments pred lst) 20 | (cond 21 | ((null? lst) 22 | lst) 23 | ((pred (car lst)) 24 | (receive (a b) 25 | (splitf-at lst pred) 26 | (cons a (fragments pred b)))) 27 | (else 28 | (receive (a b) 29 | (splitf-at lst (negate pred)) 30 | (cons a (fragments pred b)))))) 31 | 32 | (define (list