Comments (6)
I think, instead, there should be a stream() method or something to allow continuing the stream. yield() in Scala is a terminal.
from soabase-halva.
Oh you're totally right, I'm mixing up Haskell do
and Scala for
, d'oh :)
from soabase-halva.
Hmmm, are you sure yield is a terminal operation?
Eg http://docs.scala-lang.org/tutorials/FAQ/yield.html
for(x <- c1; y <- c2; z <- c3) yield {...}
//===
c1.flatMap(x => c2.flatMap(y => c3.map(z => {...})))
so if c1
is a stream then the for comprehension would also be a stream, no?
from soabase-halva.
Scala doesn't have an analog to stream() right? You can directly map any sequence. I don't think there's a way to do this in Java without introducing a stream()
method to For - which I think is a good idea actually.
from soabase-halva.
So, with Halva, you'd end up with:
forComp(l, myList)
.forComp(y, l.whatever)
.stream(() -> i + y) // stream() instead of yield
.map(x -> x * 10) // here we're out of forComp into JDK-land
from soabase-halva.
stream() method added.
from soabase-halva.
Related Issues (20)
- More thoughts on pattern matching syntax
- Fix documentation re type aliases HOT 1
- Support type aliases of concrete types, constructor overrides, co-variant returns HOT 4
- TypeAliases - a few more issues/thoughts from using it HOT 3
- Support container types for concrete classes HOT 6
- Support generated values inside of generated classes
- Have simpler Consable<T> interface?
- Should (can?) type aliases also "override" the static members to "fix" the return type HOT 3
- Use enums for case objects HOT 1
- MonadicFor annotation can generate NPE HOT 7
- Support command line overrides for Annotation attributes
- Review Type Safety - Pattern/Extraction is currently loosely typed. Make it strongly typed without (hopefully) losing usability HOT 1
- Think about supporting Bean Validation 1.1 annotations on fields HOT 3
- Add debug tools
- Support extracted/multi-assignment
- Add support for dsl-json HOT 2
- CaseClasses that extend interfaces not working properly
- Halva annotation retentions should be RUNTIME HOT 1
- Halva annotations must appear first
- CaseClass mis-generates wildcard types
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 soabase-halva.