mirror of
https://github.com/iritmaximus/haskell.git
synced 2026-10-12 19:13:39 +03:00
+1
-1
@@ -3404,7 +3404,7 @@ this topic connects to equational reasoning discussed in chapter 10.
|
||||
<h3 data-number="13.13.1"><span class="header-section-number">13.13.1</span> Optionals</h3>
|
||||
<p>Many langages have an <a href="https://en.wikipedia.org/wiki/Option_type">option type</a>. This type is called <code>Optional<T></code> in Java, <code>std::optional<T></code> in C++, <code>Nullable<T></code> in C#, and so on. These types often have behaviour resembling the Haskell <code>Maybe</code> monad, for example:</p>
|
||||
<ul>
|
||||
<li>In Java, <a href="https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/Optional.html#flatMap(java.util.function.Function)"><code>Optional.flatMap</code></a> corresponds to <code>>>=</code>: it lets you apply a <code>Function<T,<Optional<U>></code> to an <code>Optional<T></code> and get an <code>Optional<U></code>.</li>
|
||||
<li>In Java, <a href="https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/Optional.html#flatMap(java.util.function.Function)"><code>Optional.flatMap</code></a> corresponds to <code>>>=</code>: it lets you apply a <code>Function<T,Optional<U>></code> to an <code>Optional<T></code> and get an <code>Optional<U></code>.</li>
|
||||
<li>In C#, binary operations get automatically <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-value-types#lifted-operators">lifted</a> to <code>Nullable</code> types. For example, <code>a + null</code> becomes <code>null</code>.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user