タグ

groovyzに関するuehajのブックマーク (1)

  • 実装から学ぶ型クラス…Groovyで型クラスを実現することを例にして - uehaj's blog

    これは2014年のG*アドベントカレンダーの第23日目の記事のつもりでしたが、12時すぎてしまいましたorz。 HaskellやScalaRustには型クラスという言語機能があり、個人的感想として、理解が難しかったものの一つです。いわく、インターフェースのようなもの。いわく、オープンクラスのようなもの、など。 わからなければ作ってみるのが一番です。なのでGroovyで型クラスを実装してみました。 ソースはこちら。 ただし実用的なものではなく、学習用です。また実装したのは概念のコア部分のみで、言語によって詳細は異なることに注意ください。 型クラスとは何か 型クラスとは、多相型・ジェネリクス型の型引数(仮型引数)に対して、「ある型に対して可能な操作の集合」を、制約として与え、またそれらの操作が可能であるという保証を、「クラスの継承関係」とは無縁の方法で与えるものです。 別の言い方で言うと、「

    実装から学ぶ型クラス…Groovyで型クラスを実現することを例にして - uehaj's blog
    uehaj
    uehaj 2014/12/24
    追記 "仮想関数による多態性イラネ。原語では同じ単語で多相性とかぶってる""操作のレシーバーという概念は非対称で嫌。レシーバーと他の引数、戻り値の型に非対称性があり、数学的概念の記述などでの一般性を阻害す
  • 1