Skip to content

Commit bd28ff0

Browse files
committed
Housekeeping
1 parent 84e3f6c commit bd28ff0

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](http://keepachangelog.com/).
55

66
## [Unreleased]
7+
### Added
8+
- `MergeMaps`, a `Monoid` on `Map` formed by `Map#merge`
9+
10+
## [3.2.0] - 2018-12-08
711
### Changed
812
- ***Breaking Change***: `Difference` and `Intersection` no longer instances of `Semigroup` and moved to `functions.builtin.fn2` package
913
- ***Breaking Change***: `Absent` moved to `semigroup.builtin` package
@@ -404,7 +408,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
404408
- `Monadic/Dyadic/TriadicFunction`, `Predicate`, `Tuple2`, `Tuple3`
405409
- `Functor`, `BiFunctor`, `ProFunctor`
406410

407-
[Unreleased]: https://github.com/palatable/lambda/compare/lambda-3.1.0...HEAD
411+
[Unreleased]: https://github.com/palatable/lambda/compare/lambda-3.2.0...HEAD
412+
[3.2.0]: https://github.com/palatable/lambda/compare/lambda-3.1.0...lambda-3.2.0
408413
[3.1.0]: https://github.com/palatable/lambda/compare/lambda-3.0.3...lambda-3.1.0
409414
[3.0.3]: https://github.com/palatable/lambda/compare/lambda-3.0.2...lambda-3.0.3
410415
[3.0.2]: https://github.com/palatable/lambda/compare/lambda-3.0.1...lambda-3.0.2

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@ Add the following dependency to your:
5757
<dependency>
5858
<groupId>com.jnape.palatable</groupId>
5959
<artifactId>lambda</artifactId>
60-
<version>3.1.0</version>
60+
<version>3.2.0</version>
6161
</dependency>
6262
```
6363

6464
`build.gradle` ([Gradle](https://docs.gradle.org/current/userguide/dependency_management.html)):
6565

6666
```gradle
67-
compile group: 'com.jnape.palatable', name: 'lambda', version: '3.1.0'
67+
compile group: 'com.jnape.palatable', name: 'lambda', version: '3.2.0'
6868
```
6969

7070
<a name="examples">Examples</a>

src/main/java/com/jnape/palatable/lambda/monoid/builtin/MergeMaps.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
* @see Monoid
2020
* @see java.util.Map
2121
*/
22-
public class MergeMaps<K, V> implements BiMonoidFactory<Supplier<Map<K, V>>, Semigroup<V>, Map<K, V>> {
22+
public final class MergeMaps<K, V> implements BiMonoidFactory<Supplier<Map<K, V>>, Semigroup<V>, Map<K, V>> {
23+
24+
private static final MergeMaps INSTANCE = new MergeMaps();
25+
2326
private MergeMaps() {
2427
}
2528

@@ -33,23 +36,26 @@ public Monoid<Map<K, V>> apply(Supplier<Map<K, V>> mSupplier, Semigroup<V> semig
3336
}, mSupplier);
3437
}
3538

36-
public static <A, B> MergeMaps<A, B> mergeMaps() {
37-
return new MergeMaps<>();
39+
@SuppressWarnings("unchecked")
40+
public static <K, V> MergeMaps<K, V> mergeMaps() {
41+
return INSTANCE;
3842
}
3943

40-
public static <A, B> MonoidFactory<Semigroup<B>, Map<A, B>> mergeMaps(Supplier<Map<A, B>> mSupplier) {
41-
return MergeMaps.<A, B>mergeMaps().apply(mSupplier);
44+
public static <K, V> MonoidFactory<Semigroup<V>, Map<K, V>> mergeMaps(Supplier<Map<K, V>> mSupplier) {
45+
return MergeMaps.<K, V>mergeMaps().apply(mSupplier);
4246
}
4347

44-
public static <A, B> Monoid<Map<A, B>> mergeMaps(Supplier<Map<A, B>> mSupplier, Semigroup<B> semigroup) {
48+
public static <K, V> Monoid<Map<K, V>> mergeMaps(Supplier<Map<K, V>> mSupplier, Semigroup<V> semigroup) {
4549
return mergeMaps(mSupplier).apply(semigroup);
4650
}
4751

48-
public static <A, B> Fn1<Map<A, B>, Map<A, B>> mergeMaps(Supplier<Map<A, B>> mSupplier, Semigroup<B> semigroup, Map<A, B> x) {
52+
public static <K, V> Fn1<Map<K, V>, Map<K, V>> mergeMaps(Supplier<Map<K, V>> mSupplier, Semigroup<V> semigroup,
53+
Map<K, V> x) {
4954
return mergeMaps(mSupplier, semigroup).apply(x);
5055
}
5156

52-
public static <A, B> Map<A, B> mergeMaps(Supplier<Map<A, B>> mSupplier, Semigroup<B> semigroup, Map<A, B> x, Map<A, B> y) {
57+
public static <K, V> Map<K, V> mergeMaps(Supplier<Map<K, V>> mSupplier, Semigroup<V> semigroup, Map<K, V> x,
58+
Map<K, V> y) {
5359
return mergeMaps(mSupplier, semigroup, x).apply(y);
5460
}
5561
}

0 commit comments

Comments
 (0)