The Racket repository
![]() drop the tail call fanciness "simple enough", for now, means that it is a struct selector, predicate, constructor, or mutator. Perhaps we will learn more about such simple procedures where this is safe some other way. This commit speeds up this program: #lang racket/base (require racket/contract/base) (struct s (x)) (define f (contract (-> any/c integer?) s-x 'pos 'neg)) (define an-s (s 1)) (time (for ([x (in-range 10000000)]) (f an-s))) by about 1.9x |
||
---|---|---|
pkgs | ||
racket | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
appveyor.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-2016 PLT Design Inc. Racket is distributed under the GNU Lesser General Public License (LGPL). This implies that you may 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 states that you must release the source code for the modified software. See racket/src/COPYING_LESSER.txt for more information.