タグ

型クラスに関するmather314のブックマーク (5)

  • class.dvi

    ���� ����� ��������������������������!�#"%$'&�� �()&�&*���+����� ,�-/.102.13547698:02;=<�6?>@8BA!CD;=3/-/;=>FEG02H9CIC JK>/.1L!;M<ON'.2C(PQH?RTSK0U69N(V9H�W�X Y%Z CDH9[\;=<^]=_9`a` bdc#e�f:g\h�i)f jlk?monqparOp9s(tup�tvs(nws'xMyvn{z1|v}�~��'�o�O���(~'� ��r�x�s'��r�p�p�tv�MrO��k yv�^���O�2���I�Gpa�����M�K��tvp�k�m�nw���/j��=p9sT�(��r�nwnws'n p9s(tv��m�yl�O��s(t�� ���=rO��m�x��u����r�twm�ywk��Ks(ywm

  • 型クラスに関するここ数日の議論

    ここ数日で型クラスに関する議論が何故かもりあがっていたので、一通りひろってまとめてみました。型クラスというお題で色々なところで議論が同時多発していた感じなので、全体の流れとかはあまりないです。

    型クラスに関するここ数日の議論
    mather314
    mather314 2017/05/30
    色々な視点やニーズによる捉え方はあると思うんだけど、僕は「型クラスとインターフェースは別のもの」と思っておいた方がいいと思う。
  • 型クラスはインターフェースとどう違うのか | POSTD

    (注:2017/02/27、いただいたフィードバックを元に翻訳を修正いたしました。) Haskellの型クラスは、Haskellを学び始めたばかりの多くの人にとっては難しい概念です。たいていの言語はこれを表すことが全くできませんし、それに近い概念も持っていません。多くのオブジェクト指向型の言語にとっては、利用可能なものの中では Interface が最も近い言語要素でしょう。Rubyの modules は似たような役割を持っています。しかし、この概念は両方とも、名前の多重定義と一種のポリモーフィズムをアドレスするので、型クラスが提供するパワーの一部を欠いています。 この記事は、型クラスに興味を持っている人向けです。Haskellや関数型プログラミングの予備知識は必要ありません。JavaやC言語のような静的な型付き言語に慣れていれば、役に立つでしょう。 型クラスについての概要/要約 型クラス

  • 続・結局型クラスって何がうれしいのっていう話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    今回は時間がないので簡単に見ます。 型クラスによってアドホック多相が実現されるとどんな柔軟なことができるのかという例を見ましょう。 たとえば、List#max について見て見ましょう。これ、要素が String だったら辞書順での最大値を返すし、Int だったら数的な意味での最大値を返しますよね。もし「そもそも比べられない型」が要素に入ってたらコンパイルエラーになります。 class Nyan(val value: String) //比べることのできない型 println(List(1, 2, 3).max) // => 3 println(List("a", "b", "c").max) // => c println(List(new Nyan("a"), new Nyan("b"), new Nyan("c")).max) // => error:No implicit Order

    続・結局型クラスって何がうれしいのっていう話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • で、結局型クラスって何がうれしいの、ということの説明 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    前回の記事では、Scala では implicit parameter を利用することで型クラスと同等のことが実現できることがわかりました。しかし前回の疑問として、「で、それの何がうれしいのよ」というのは残っていましたね。 今回はそのうれしみをなるべくわかりやすく説明したいと思います。 たとえば、色んなクラスに flipFlap メソッドを生やしたい まず、前回と同じく「値をひっくり返す」という flipFlap について考えてみましょう。 前回は関数を作りましたが、Scalaらしく、こういう動きにしたいですね 1.flipFlap // => -1 true.flipFlap // => false "string".flipFlap // => gnirts Scala ではクラスを拡張するときには implicit conversion を使うのが一般的ですね。 class IntF

    で、結局型クラスって何がうれしいの、ということの説明 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    mather314
    mather314 2014/07/02
    勉強になります。何か違和感を感じたのは、HaskellだとIOとかListにFunctor型クラスをつけるような例が欲しいかな、と思ったくらいでしょうか。TraversableとOptionとかそうなってるといいのにな。
  • 1