タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

typeclassに関するnfunatoのブックマーク (10)

  • 型クラスの原点 How to make ad-hoc polymorphism less ad hoc を読んだ話 - Qiita

    オレオレ型クラスの話をやめろ。原典に当たれ。ということで、Haskell に型クラスの導入を提案した論文とされる Philip Wadler. How to make ad-hoc polymorphism less ad hoc を読んだのでそれをまとめる話です。 型クラス導入の目的 2 つの多相 多相にはアドホック多相、パラメトリック多相の 2 つの種類がある。 アドホック多相 アドホック多相は、ある関数が受け入れる型によって 型に応じた振る舞いをするような多相 。典型的なのは関数や演算子のオーバーロード。

    型クラスの原点 How to make ad-hoc polymorphism less ad hoc を読んだ話 - Qiita
  • 型クラスの真の力を見せる - kmizuの日記

    昨日、 kmizu.hatenablog.com という記事を書いたわけだが、その後、今日、型クラスに関する議論が一部で(?)盛り上がっているようだ。それは型クラスじゃなくても実現できるのでは、いや、やっぱりインタフェースのようなものと思っていいのでは、などなど。 今回の記事では、型クラスじゃないと実現が著しく困難であると思われる 使い方について書くことにする。 まず、前の記事では、Orderingの使い方を通して、型クラスの単純な使い方について説明したのであった。単純なオブジェクトの場合はそれでもいいが、より複雑なオブジェクトをOrderingを使ってソートしたい場合、前回の記事のようなやり方だけでは難しいことがある。 一例として、(A, B)というタプル型、つまり、A型の要素とB型の要素からなるペアを比較して、ソートしたいという要求を考える(実際には、標準ライブラリでタプル型の比較が提

    型クラスの真の力を見せる - kmizuの日記
  • 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    タイトルに「入門的ではない」と入れたのは; 先日の「関数型プログラミングとオブジェクト指向について、何か書く、かも」において、「型クラス入門」の記事を書くかもと予告じみたことを言ってしまったので、その入門じゃないぞ、と。でも、型クラスの話だぞ、と。そういう意味合いです。ヨロシク、アシカラズ。 型クラスの元祖はHaskellです。なので、「型クラス = Haskellの型クラス」という前提での解説が多いみたいです。しかし、元祖は“最初の試み”であるがゆえに、使用経験や後発の理論を活かすことが出来ず、むしろ問題をかかえていたりします。Haskellの型クラスも、なんだか残念なところが。 内容: オーバーロードと人生 型クラスは何がうれしいのか(オーバーロードなしでも) 型クラスの実際 記号の乱用の実装法 Haskellの型クラスは何がマズイのか オーバーロードと人生 型クラス誕生の動機は、演算

    入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 型クラスの比較 - (保存用) 檜山正幸のキマイラ飼育記 メモ編

    Standard MLが圧倒的に良くできているな。オーバーロードを意図してない、型システムじゃない、という問題点はあるが、許せる、許せる。 Haskellは「悪いお薬」をキメている。当座はとても元気が出るが、いずれは心身を蝕むアレ。型名に対するコアージョンを組み込みで入れている。組み込み、骨絡みだらか外せない。僕は、短絡的な発想による設計ミスだと思うが、今更どうにもならないだろう。 Scalaは、パラメータを取るという点でHaskellを踏襲してしまったので、やっぱり「悪いお薬」の影響がそのうち出るだろう。 Coqの型クラスは概念的には良く出来ているんだが、半世紀前の名前空間のせいで台無し。まったくクソになってしまっている。ほんとに残念。 メジャー言語は、型クラスを最初から入れてるわけじゃなくて後付けだから、なんか歪んでいる。利便性優先でオーガニックな構造を歪めてるか壊しているかしているの

    型クラスの比較 - (保存用) 檜山正幸のキマイラ飼育記 メモ編
  • Type class - Wikipedia

    This article is about polymorphic type systems in computer science. For the mathematical class of order-types of a given cardinality, see Glossary of set theory § T. In computer science, a type class is a type system construct that supports ad hoc polymorphism. This is achieved by adding constraints to type variables in parametrically polymorphic types. Such a constraint typically involves a type

  • haskell 型クラス data 違い - Google 検索

    2016/05/30 · ザックリまとめると、こんな感じです。 データ型:データ構造を定義するもの; 型クラス:振る舞いを定義するもの. ちゃんとした内容は「すごいHaskell ...

    nfunato
    nfunato 2015/09/21
    "haskell 'type class' data difference"
  • haskell "(+)" overload - Google 検索

    2014/08/22 · HaskellでC++Javaなどでできる関数のオーバーロードのようなことをやってみました。型クラスについての簡単な説明も含みます。 新しい言語を使うときは ...

  • Haskellで関数のオーバーロード - Qiita

    Haskellの実験メモです。 HaskellでC++Javaなどでできる関数のオーバーロードのようなことをやってみました。型クラスについての簡単な説明も含みます。 新しい言語を使うときはまさに手探りで、試行錯誤の過程についても記載しています。パターンマッチによる関数の分割定義を見たとき、関数のオーバーロードに似ていると感じたことが発端となっています。 C++ C++では同じ名前で引数の型が異なる関数を複数定義することができます。(関数のオーバーロード) #include <iostream> #include <string> using namespace std; string foo(int i) { if (i == 1) return "bar"; return "?"; } string foo(const string &s) { if (s == "1") return

    Haskellで関数のオーバーロード - Qiita
  • Haskellでの多態 (多相) | Netsphere Laboratories

    (2009.1.3) Haskell での polymorphism について。 オブジェクト指向だと polymorphism (ポリモーフィズム) は「多態」と訳しますが、Haskell 界 (?) では「多相」というみたいです。 オブジェクト指向言語では、あるオブジェクトに対するメソッド呼び出しが、そのオブジェクト(の種類、クラス)によって異なる振る舞いをする、という意味で使われます。 Haskellにはパラメータ多相とアドホック多相があります。 パラメータ多相 Haskell は、静的に (=コンパイル時に) 型チェックしますが、型が違うだけで実装が共通化できることがよくあります。こういうとき、型をパラメータとします。このような多態をパラメータ多相 (parametric polymorphism) といいます。 次の例は、何かのリストの長さ(要素の数)を数えます。a は型変数で、

  • Can you overload + in haskell?

  • 1