Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

モナドについて調べていく(8)

One Div Zero: Monads are Elephants Part 1の翻訳続き。

Monads are Container Types(モナドはコンテナのタイプだ)

One of the most commonly used container types is List and we'll spend some time with it. I also mentioned Option in a previous article.

リストはもっともよく使われるコンテナのタイプの1つです。なのでリストに少し時間を割きます。
以前の記事でOptionについて触れました。


As a reminder, an Option is always either Some(value) or None.

思い出してほしいのですが、Optionは常にSome(value)かNoneのどちらかです。


It might not be clear how List and Option are related, but if you consider an Option as a stunted List that can only have 0 or 1 elements, it helps.

リストとOptionがどう関連するのかはっきりしないかもしれませんが、Optionが要素が0か1の限定されたリストであると考えてみるとヒントになるかもしれません。


Trees and Sets can also be monads. But remember that monads are elephants, so with some monads you may have to squint a bit to see them as containers.

ツリーとセットもモナドです。しかし、モナドは象であることを思い出してください。
なのでいくつかのモナドではそれらをコンテナとして見るには少し斜めから見なければなりません。


Monads are parameterized. List is a useful concept, but you need to know what's in the List. A List of Strings (List[String]) is pretty different from a List of Ints (List[Int]).

モナドはパラメータ化されます。リストは有益なコンセプトですが、リストにあるものを知る必要があります。
文字列のリスト(List[String])は数字のリスト(List[Int])は違います。


Obviously it can be useful to convert from one to the other. Which leads us to the next point.

あるものから他のものに変換することは明らかに有益です。このことが次のポイントにつながります。