# Advanced Usage

While understanding the basics provides a solid foundation, the true potential of result objects is unlocked through their functional capabilities. Mastering these techniques enables concise and readable error handling by leveraging the power of [monadic composition](https://en.wikipedia.org/wiki/Monad_\(functional_programming\)).

{% hint style="success" %}
The most idiomatic approach to handling results involves screening them and applying various mapping and flat-mapping methods to transform and compose behavior.
{% endhint %}

![Results can be filtered and transformed just like Java streams.](https://137539276-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MfavUYGNGvzkCicVu3-%2Fuploads%2Fgit-blob-135d5ac81f8633305c808ab0dca6694a708b5a6a%2Fadvanced-usage.png?alt=media)

This section will guide you through these powerful tools, demonstrating how to manipulate results effectively so you can craft more robust and maintainable Java applications.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://result.leakyabstractions.com/docs/advanced.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
