Comments (7)
@DanielGronau, @clinuxrulz: I found that the constructor methods of Either and Maybe are a bit verbose, do you plan to keep them as is or would you rather drop the 'new' prefix to be more in line with other fp libraires?
I ask because the name of the methods will be hard-coded in derive4j (as well as the qualified name of Maybe, Either and F1). So it would be better if they not change just after the derive4j release.
from derive4j.
The constructor methods started actually as Left, Right, Just, Nothing, I changed them to to follow the Java convention of small method names (and couldn't bring myself to call them left, right etc).
However, I have no strong opinion about this, and wouldn't mind to switch back to the old uppercase names. Then there is still the question concerning the lazy counterparts. I found out that using the same name for a lazy version passing a Supplier is a bad idea.
Concerning the package structure, I'm inclined to drop the data package, and reorganize the packages inside (which look quite messy right now). I would also drop all plurals in package names. So we would end up with org.highj.collection.Either, org.highj.collection.Maybe and org.highj.function.F1
from derive4j.
yes, using the same name for the lazy constructor can break method reference type inference.
@DanielGronau could you drop me a note in this issue when the HighJ has settled on those points ?
from derive4j.
@jbgi We moved Maybe
and Either
to org.highj.data
, and F1
to org.highj.function
. Further, we changed the constructor methods to upper-case.
from derive4j.
@DanielGronau perfect. Need to sort out #34 and #35 and will release 0.9 shortly!
from derive4j.
@clinuxrulz @DanielGronau Derive4J 0.8 with the HighJ flavour should now be available on maven central!
from derive4j.
Thank you, I updated the dependency.
from derive4j.
Related Issues (20)
- NoSuchElementException after upgrading from 0.10.2 to 1.1.1
- StackOverflow in derivingConfig when @Data annotation is used HOT 1
- Data constructors: allow referencing no yet generated types. HOT 1
- Extension APIs HOT 1
- Could not find instance derivator for fj.Equal and InstanceConfig(Optional.empty, Optional.empty) HOT 2
- @ExportAsPublic does not work correctly on (static) nested classes
- Add Vavr flavour HOT 4
- Improve lazy implementation to support stack-safe evaluation of nested Lazy values
- Ignoring arguments while pattern matching HOT 4
- Random bug : compilation pb with static imports of constructors HOT 4
- Supporting subtypes HOT 4
- Compilation times with Derive4J-generated code HOT 9
- Type classes derivation : wildcards are problematic HOT 2
- DSL example Pass compile but can't run . HOT 5
- Type classes derivation : arrays (or varargs) are problematic HOT 1
- Add Cycops flavour HOT 1
- Feature request: Support Java 11
- Any example about Lens support for VAVR? HOT 4
- Usage in mixed scala/java codebase
- More compact code for equals methods HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from derive4j.