Using exceptions in C++ desktop and server applications overall made sense to me. As I expanded my usage of C++ into other domains, specifically embedded domains, I began to experience more compelling reasons not to use exceptions first-hand…

From lobste.rs

  • @[email protected]
    link
    fedilink
    111 months ago

    The original claim wasn’t that you can’t implement monads in C++, it was that compiler support is needed for “good” sum types. Unless I’m misreading, you brought monads into it. And they’re not totally orthogonal: sum types are a very good way to implement monads.

    • @[email protected]
      link
      fedilink
      English
      1
      edit-2
      11 months ago

      Unless I’m misreading, you brought monads into it.

      You’re misreading it. What do you think a ‘Result’ type is?

      • @[email protected]
        link
        fedilink
        111 months ago

        Well, in Rust, it’s a sum-type, with functions that also let you use it like a monad instead of using explicit pattern matching.

        • @[email protected]
          link
          fedilink
          English
          1
          edit-2
          11 months ago

          Well, in Rust, it’s a sum-type

          The discussion is on to use monads in C++, and not on why is C++ different than Rust.

          I repeat: you do not need sum types to implement a Result monad in C++.

          • @[email protected]
            link
            fedilink
            111 months ago

            The discussion was about sum types. The top-level comment, the one to which you originally responded, says:

            It’s a shame that sum type support is still so lacking in C++. Proper Result types (ala Haskell or Rust) are generally much nicer to deal with, especially in embedded contexts.