Dead-Simple Dependency Injection in Scalaという発表で、Dependency Injection(依存の注入)をReaderモナドなどを用いて行うという技術があった。下記がその発表である。 この記事ではまず、Dependency Injectionについての説明と、Readerモナドについての説明を行い、次にReaderモナドを使ったDependency Injectionについて述べて、Freeモナドを用いて小さなDSLを作るアプローチを紹介する。 この記事はモナドやDependency Injectionなどに関する前提知識がなくてもある程度読めるように意図しているが、Scalaの文法的な知識を前提としている。また、もし説明が不足している点や文章の意図が分かりにくい部分があれば、気軽にコメントなどで指摘して欲しい。 注意: 記事の中にあるコードは