The Racket repository
![]() The #:dispatch option specifies a second, less strict predicate for a #:defaults or #:fast-defaults clause. The main predicate is still used for the generics group's type predicate, but the dispatch predicate is used in choosing which method implementation to use. The #:dispatch option is useful when the dispatch predicate is disjoint from all other instances, is significantly cheaper to run than the main predicate, and the full checks can be meaningfully deferred in method implementations. Specifically, this is useful in the implementation of iteration for association-list dictionaries. The dict-iterate-{next,key,value} functions do not need to test (andmap pair? dict) if the given dict is eq? to the one stored in the given iterator. The dispatch predicate, list?, is much cheaper. |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
INSTALL.txt | ||
Makefile | ||
README.txt |
This is the source code for the main Racket distribution. See "INSTALL.txt" for information on building Racket. License ------- Racket Copyright (c) 2010-2013 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This means that you can link Racket into proprietary applications, provided you follow the rules stated in the LGPL. You can also modify Racket; if you distribute a modified version, you must distribute it under the terms of the LGPL, which in particular means that you must release the source code for the modified software. See doc/release-notes/COPYING_LESSER.txt for more information.