Skip to content
This repository was archived by the owner on Apr 25, 2024. It is now read-only.

Commit 9b8fe75

Browse files
puredangerstuarthalloway
authored andcommitted
1.7.0-RC2 changelog updates
Signed-off-by: Stuart Halloway <[email protected]>
1 parent e72d043 commit 9b8fe75

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

changes.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ Many existing sequence functions now have a new arity (one fewer argument
1616
than before). This arity will return a transducer that represents the same
1717
logic but is independent of lazy sequence processing. Functions included are:
1818

19-
* conj (conjs to [])
2019
* map
2120
* mapcat
2221
* filter
@@ -38,7 +37,7 @@ logic but is independent of lazy sequence processing. Functions included are:
3837
Additionally some new transducer functions have been added:
3938

4039
* cat - concatenates the contents of each input
41-
* de-dupe - removes consecutive duplicated values
40+
* dedupe - removes consecutive duplicated values
4241
* random-sample - returns items from coll with random probability
4342

4443
And this function can be used to make completing transforms:
@@ -51,12 +50,12 @@ transducers in different ways:
5150
* sequence - takes a transformation and a coll and produces a lazy seq
5251
* transduce - reduce with a transformation (eager)
5352
* eduction - returns a reducible/iterable of applications of the transducer to items in coll. Applications are re-performed with every reduce/iterator.
54-
* run! - run the transformation for side effects on the collection
5553

5654
There have been a number of internal changes to support transducers:
5755

5856
* volatiles - there are a new set of functions (volatile!, vswap!, vreset!, volatile?) to create and use volatile "boxes" to hold state in stateful transducers. Volatiles are faster than atoms but give up atomicity guarantees so should only be used with thread isolation.
5957
* array iterators - added support for iterators over arrays
58+
* conj can be used as a reducing function and will conj to []
6059

6160
Some related issues addressed during development:
6261
* [CLJ-1511](http://dev.clojure.org/jira/browse/CLJ-1511)
@@ -88,13 +87,14 @@ prior to .cljc.
8887
A new reader form can be used to specify "reader conditional" code in
8988
cljc files (and *only* cljc files). Each platform defines a feature
9089
identifying the platform (:clj, :cljs, :cljr). The reader conditional
91-
specifies code that is read conditionally based on the feature/
90+
specifies code that is read conditionally based on the feature. The
91+
REPL also allows reader conditionals.
9292

9393
Form #? takes a list of alternating feature and expression. These are
9494
checked like cond and the selected expression is read and returned. Other
95-
branches are unread. If no branch is selected, the reader reads nothing
96-
(not nil, but literally as if reading ""). An optional ":default" branch
97-
can be used as a fallthrough.
95+
branches are read but skipped. If no branch is selected, the reader reads
96+
nothing (not nil, but literally as if reading no form). An optional
97+
`:default` branch can be used as a fallthrough.
9898

9999
Reader conditional with 2 features and a default:
100100

@@ -104,14 +104,14 @@ Reader conditional with 2 features and a default:
104104

105105
There is also a reader conditional splicing form. The evaluated expression
106106
should be sequential and will be spliced into the surrounded code, similar
107-
to unqoute-splicing.
107+
to unquote-splicing.
108108

109109
For example:
110110

111111
[1 2 #?@(:clj [3 4] :cljs [5 6])]
112112

113113
This form would read as [1 2 3 4] on Clojure, [1 2 5 6] on ClojureScript,
114-
and [1 2] on any other platform.
114+
and [1 2] on any other platform. Splicing is not allowed at the top level.
115115

116116
Additionally, the reader can now be invoked with options for the features
117117
to use and how to interpret reader conditionals. By default, reader conditionals
@@ -130,6 +130,7 @@ http://dev.clojure.org/display/design/Reader+Conditionals
130130
* [CLJ-1699](http://dev.clojure.org/jira/browse/CLJ-1699)
131131
* [CLJ-1700](http://dev.clojure.org/jira/browse/CLJ-1700)
132132
* [CLJ-1728](http://dev.clojure.org/jira/browse/CLJ-1728)
133+
* [CLJ-1706](http://dev.clojure.org/jira/browse/CLJ-1706)
133134

134135
### 1.3 Keyword and Symbol Construction
135136

@@ -256,6 +257,15 @@ map data: `Throwable->map`.
256257

257258
* [CLJ-1703](http://dev.clojure.org/jira/browse/CLJ-1703)
258259
* [CLJ-1716](http://dev.clojure.org/jira/browse/CLJ-1716)
260+
* [CLJ-1735](http://dev.clojure.org/jira/browse/CLJ-1735)
261+
262+
### 1.8 run!
263+
264+
run! is a new function that takes a side effect reducing function and runs
265+
it for all items in a collection via reduce. The accumulator is ignored and
266+
nil is returned.
267+
268+
(run! println (range 10))
259269

260270
## 2 Enhancements
261271

0 commit comments

Comments
 (0)