タグ

classに関するnorisuke3のブックマーク (3)

  • 型クラス - ウォークスルー Haskell

    型クラス(type class)は,データ型をカテゴライズする役割を持つ概念です. 例えば,数値型全般を表す Num という型クラスは,数値型全般を表します. Num 型クラスの インスタンス(instance)は,具体的な数値型である Int や Double などです. 型クラスは,オブジェクト指向プログラミングにおける "クラス" と似通った概念ですが,レイヤが違う話なので注意が必要です. オブジェクト指向プログラミングにおけるクラスはデータ型であり,インスタンスはオブジェクトですが,Haskell における型クラスはデータ型のひとつ上の概念であり,インスタンスがデータ型です.

  • A Gentle Introduction to Haskell: Classes

    やさしい Haskell 入門 ( バージョン 98 ) back next top 5  型クラスと多重定義 最後に他のプログラミング言語とは違う Haskell の型システムの特徴について 説明しましょう。すでに述べてきた多相は、パラメータ ( parametric )多相とよばれるものです。このほかに アドホック多相とよばれる種類のものもあります。これは 多重定義( overloading )という呼びかたのほうがよく知られ ているかもしれません。アドホック多相の例をいくつかあげると、 1、2 などのリテラルは、固定長の整数と任意長の整数の両 方でつかわれることが多い。 + のような数値演算子は何種類もの数値上で定義されることが多い。 同値演算子( Haskell では == )はふつう数値とその他多く(すべてで はない)の型の上で動作することが多い。 こうした多重定義されたものの振

  • Class構文について - JS.next

    概要 待ち焦がれた人も多いことだろう。ES2015の一番の目玉機能とも言えるクラス構文が、ついにV8でサポートされた。 Class構文は、『関数(コンストラクタ)定義』+『.prototypeへのメソッド定義』の糖衣構文である。 JSで今まで様々に工夫されてきたクラスの書き方を、綺麗に統一してくれる可能性を秘めている。 クラスを作る 従来、Catクラスを作ろうとした場合このように書いてきた。 function Cat(name) { this.name = name } Cat.prototype.meow = function () { alert( this.name + 'はミャオと鳴きました' ) } しかしこの書き方だとどうしても、コンストラクタとメソッドの定義が分離されているため、クラスとしてまとまりがなく分かりづらく感じる。 メソッドが増えてきた時も、Cat.prototyp

    Class構文について - JS.next
  • 1