Git Product home page Git Product logo

Comments (6)

Randgalt avatar Randgalt commented on July 17, 2024

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.

Alex-At-Home avatar Alex-At-Home commented on July 17, 2024

Oh you're totally right, I'm mixing up Haskell do and Scala for, d'oh :)

from soabase-halva.

Alex-At-Home avatar Alex-At-Home commented on July 17, 2024

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.

Randgalt avatar Randgalt commented on July 17, 2024

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.

Randgalt avatar Randgalt commented on July 17, 2024

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.

Randgalt avatar Randgalt commented on July 17, 2024

stream() method added.

from soabase-halva.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.