Functional dillerde Monad, Function Composition için kullanılır
Örnek
Şöyle yaparız
bread = bake( mill(wheat) )
Java'da Monad yok. Ancak benzer bir sonucu iki farklı şekilde yapabiliriz.
1. Chaining Methods
2. Optional Kullanarak
1. Chaining Methods
Örnek
Şöyle yaparız
public Optional<Flour> mill(Wheat wheat) { // ... } public Optional<Bread> bake(Flour flour) { // ... } Optional<Bread> oopBread = harvest() .flatMap(wheat -> mill(wheat)) .flatMap(flour -> bake(flour));
2. Optional Kullanarak
Diğer dillerde Maybe<>, Either<>, Optional<> gibi yapılar var Java'da sadece Optional var. Bu kullanım biraz daha Functional dillere benziyor. Ancak halen exception handling sıkıntısı var. Three Exception-Handling Alternatives Inspired by Functional Programming yazısına bakabilirsiniz
Örnek
Şöyle yaparız
public Optional<Flour> mill(Optional<Wheat> wheat) { // ... } public Optional<Bread> bake(Optional<Flour> flour) { // ... } Optional<Bread> fpBread = bake( mill( harvest() ) );
Hiç yorum yok:
Yorum Gönder