Result type
In functional programming, a result type is a Monadic type holding a returned value or an error code. They provide an elegant way of handling errors, without resorting to exception handling; when a function that may fail returns a result type, the programmer is forced to consider success or failure paths, before getting access to the expected result; this eliminates the possibility of an erroneous programmer assumption.
Examples
- In Elm, it is defined by the standard library as
type Result e v = Ok v | Err e
.[1] - In Haskell, by convention the
Either
type is used for this purpose, which is defined by the standard library asdata Either a b = Left a | Right b
.[2] - In OCaml, it is defined by the standard library as
type ('a, 'b) result = Ok of 'a | Error of 'b type
.[3] - In Rust, it is defined by the standard library as
enum Result<T, E> { Ok(T), Err(E)
}.[4] - In Scala, the standard library also defines an
Either
type,[5] however Scala also has more conventional exception handling. - In Swift, it is defined by the standard library as
@frozen enum Result<Success, Failure> where Failure : Error
.[6]
References
- "Result · An Introduction to Elm". guide.elm-lang.org.
- "Data.Either". hackage.haskell.org.
- "Error Handling – OCaml". ocaml.org.
- "std::result - Rust". doc.rust-lang.org.
- "Scala Standard Library 2.13.3 - scala.util.Either". www.scala-lang.org. Retrieved 9 October 2020.
- "Apple Developer Documentation". developer.apple.com.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.