The shortest, clearest description of monads in Java I have read:
public class OptionalMonad { public static <T> Optional<T> unit(T value) { return Optional.of(value); } public static <T, U> Optional<U> bind( Optional<T> value, Function<T, Optional<U>> function) { if (value.isPresent()) return function.apply(value.get()); else return Optional.absent(); } }
Thanks to François Sarradin in a very nice post.
No comments:
Post a Comment