Advanced Patterns - Functional Programming
π§ Advanced Patterns - Functional Programming
// Maybe<T> for safe null handling
Maybe<User> user = GetUserFromCache(id);
var email = user
.Map(u => u.Email)
.Filter(email => email.Contains("@"))
.ValueOrDefault("no-reply@example.com");
// π v1.10.0: Enhanced OneOf support
OneOf<ValidationError, NotFoundError, User> result = ValidateAndCreateUser(request);
return result.Match(
case1: error => BadRequest(error),
case2: notFound => NotFound(notFound),
case3: user => Ok(user)
);
// π v1.10.0: OneOf with auto-detection
public OneOf<ValidationError, NotFoundError, User> GetUser(int id) { /* logic */ }
return GetUser(id).ToIResult(); // π Automatic HTTP mapping!