Matthew Flatt
d7b18e7a9c
adjust map
and for ... in-list
to not retain their lists
...
Adjust list and stream handling as sequences so that during the body
(for ([i (in-list l)])
....)
then `i` and its cons cell in `l` are not implicitly retained while
the body is evaluated. A `for .... in-stream` similarly avoids
retaining the stream whose head is being used in the loop body.
The `map`, `for-each`, `andmap`, and `ormap` functions are similarly
updated.
The `make-do-sequence` protocol allows an optional extra result so
that new sequence types could have the same properties. It's not clear
that using `make-do-sequence` is any more useful than creating the new
sequence as a stream, but it was easier to expose the new
functionality than to hide it.
Making this work required a repair to the optimizer, which would
incorrectly move an `if` expression in a way that could affect
space complexity, as well as a few repairs to the run-time system
(especially in the vicinity of the built-in `map`, which we should
just get rid of eventually, anyway).
2016-12-13 19:20:41 -07:00
Ben Greenman
65a69417cc
doc: clarify elements vs values in sequence/c
2016-10-06 18:46:46 -04:00
Matthew Flatt
cfb2a7aa32
in-directory: sort entries
...
Make `in-directory` more like `directory-list` by sorting
directory content.
2016-09-15 06:11:30 -06:00
Stephen Chang
048c4b4a73
add unsafe-hash-iterate ops; add specific hash table sequences
...
- refactor for.rkt: abstract in-hash- definitions
- refactor hash_table_next in hash.c
- move hash fn headers to schpriv.h
closes #1229
2016-02-05 14:30:34 -05:00
Alexis King
f52d43e600
Add for/stream and for*/stream comprehensions to racket/stream
...
Closes #664
2016-01-21 20:18:39 -06:00
Stephen Chang
fa96375742
fix in-vector segfault; document corner cases
...
closes #15227
2016-01-19 16:37:07 -05:00
Stephen Chang
0f39ee9b72
fix ni-range docs; add for tests
2016-01-19 14:22:02 -05:00
Matthew Flatt
4354ce45d8
use `scribble/examples' for the Reference
...
Port `examples`, `interactions`, etc., to use the new `examples`
form of `scribble/examples`. The main intended effect is to ensure
that errors are produced by examples only as specifically
indicated.
2015-12-11 12:29:41 -07:00
Robby Findler
023e2de5be
Go back to using the nicer unicode picture of the directory
...
now that Matthew added support for those characters to Scribble
This reverts commit db464d5ed2
.
This reverts commit dd5029947c
.
2015-11-08 19:43:02 -06:00
Robby Findler
db464d5ed2
make a little more space and stop decoding
...
(improvements to dd50299
)
2015-11-08 07:57:04 -06:00
Robby Findler
dd5029947c
use latex-friendly characters
2015-11-08 06:42:01 -06:00
Matthew Flatt
b5224743b8
refine in-directory
example
...
Extend Juan's nice example to show simpler modes, too.
2015-11-07 08:56:05 -07:00
Juan M Uys
348cd7976f
provide example for in-directory
2015-11-07 08:40:45 -07:00
Vincent St-Amour
270bbccf6b
Fix history annotations to refer to 6.3.
...
Please merge to 6.3.
2015-10-12 13:49:55 -05:00
Vincent St-Amour
c50eeeecc9
Fix history annotations.
...
Version changed while the PR was up.
2015-08-13 14:43:57 -05:00
Vincent St-Amour
033d5afb19
Revert adding in-pairs
to racket/sequence
.
...
`in-dict` is more general, and `for` loops optimize it already.
2015-08-13 14:43:57 -05:00
Vincent St-Amour
52425fbb27
Add history notes.
2015-08-13 14:43:57 -05:00
Vincent St-Amour
63b1f0f4aa
Improve docs for the new bits of racket/sequence
.
2015-08-13 14:43:56 -05:00
Vincent St-Amour
f4f75f2740
Move docs for part of unstable/sequence
to the racket/sequence
docs.
2015-08-13 14:43:56 -05:00
Vincent St-Amour
2d23ca1414
Make doc section title more accurate.
2015-08-13 14:43:56 -05:00
Matthew Flatt
7b4d25c657
add missing history note on stream*
2015-07-30 14:45:29 -06:00
Alexis King
c79f646545
Add stream* to complement stream
2015-06-20 21:43:27 +08:00
Alexis King
495784ed49
Fix contract error in in-vector documentation example
2015-06-04 07:38:57 -05:00
Robby Findler
0c2ca96ad2
move sequence/c into the part of the docs for racket/sequence
2015-03-05 08:26:54 -06:00
Robby Findler
efee5c4581
move sequence/c into racket/sequence
2015-03-02 22:14:32 -06:00
Javier Olaechea
be6e1a4045
typo in sequences.scrbl
...
Fix return values in the documentation of stream-empty?
2015-02-19 10:29:58 -07:00
Matthew Flatt
aae35ea3ac
fix stream/c
using generics chaperone property support
2015-02-19 09:56:50 -07:00
Alexis King
714b7684fe
Add stream/c contract for adding contracts on stream contents
2015-02-13 20:14:03 -06:00
Matthew Flatt
2d4f3e2ac9
remove the "racket-pkgs" directory layer
...
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00