Giter VIP home page Giter VIP logo

Comments (6)

gcanti avatar gcanti commented on May 22, 2024 4

alt that gives access to the left value

@marcotoniut see orElse

from fp-ts.

OliverJAsh avatar OliverJAsh commented on May 22, 2024

Ah, sorry. I'm being stupid.

from fp-ts.

OliverJAsh avatar OliverJAsh commented on May 22, 2024

What I actually needed was the ability to chain a Validation. I see two ways of doing this:

  • .fold
  • convert validation to Either, perform chaining using .chain, and then convert back to a Validation.
const v = validation.failure<string, string>('foo')
v
  .fold(
    failure => validation.failure<string, string>(failure),
    success => validation.failure<string, string>(mapFn(success)),
  )

Does this sound like an anti pattern to you?

from fp-ts.

OliverJAsh avatar OliverJAsh commented on May 22, 2024

Here's what I ended up with:

export const chainValidation = <L, A, B>(
    leftSemigroup: semigroup.StaticSemigroup<L>,
    validationInstance: validation.Validation<L, A>,
    chainFn: (a: A) => validation.Validation<L, B>,
) => (
    validationInstance.fold(
        failure => validation.failure<L, B>(leftSemigroup, failure),
        chainFn,
    )
);

from fp-ts.

marcotoniut avatar marcotoniut commented on May 22, 2024

I arrived here actually seeking chainLeft, or a more robust alternative to Either, TaskEither and ReaderTaskEither's alt that gives access to the left value for the morphism. Is there a reason for why this shouldn't exist?

from fp-ts.

marcotoniut avatar marcotoniut commented on May 22, 2024

Well, that makes sense... Thank you.

from fp-ts.

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.