このコードを見て分かる通り、printという「インターフェース」が存在するものであれば、なんでもUserに渡せます! ここでDuck Typingはどこが良いかというと、メソッド間で渡すものが「何」じゃなくて、「何ができる」を重視するところです。 つまり、型の依存性を無くして、コードの疎結合を実現できると考えられます。 「せっかく型言語なのに、型の依存性がなくなるのではよくないぞ!」と思っていた方もいらっしゃるかもしれないですが、よく考えてみると、関数型の意味では「処理を重視する」ためのものなので、Duck Typingは悪くないでしょう。 Martin Odeskyのインタビュー記事で、Martin氏がDuck Typingについて Translated, if it has the features that I want, then I can just treat it as if
![RubyistがScalaを勉強した話(続き) | Scala Tech Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/8cdc537c1af7397e3d324840c1f8886ba9c5dbf1/height=288;version=1;width=512/http%3A%2F%2Fd3bktha63fjub8.cloudfront.net%2Fscalablog%2Fwp-content%2Fuploads%2Fsites%2F2%2F2015%2F03%2Fscala-x-ruby.jpg)