タグ 型クラス
人気順 10 users 50 users 100 users 500 users 1000 usersインターフェースと型クラスの違いを考える
この記事では、JavaライクなインターフェースとHaskellライクな型クラスを比較します。どちらも、複数の異なる型を統一的に扱うための仕組みです。 インターフェース インターフェースはご存知の方も多いと思いますが、コード例を載せておきます。 // インターフェースの定義 interface Greetable { String greet(); } /... 続きを読む
Haskell の Array
Haskellのカレンダー | Advent Calendar 2023 - Qiita 3日目の記事です。 Haskell の Array (配列) について書こうと思います。Haskell の Array は索引が型クラスの Ix で抽象化されているため、特に配列の次元を拡張する際に柔軟性がありとても便利です。 そんな便利な Array ですが、もともと Haskell はリスト操作が... 続きを読む
Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
この記事は言語実装Advent Calendar 2020 25日目の記事です。 前提知識 高階カインド型 モナド 従来のエミュレーション方法 Generic Associated Types を用いたエミュレーション(new!) 型クラスを定義する Functor を用意する Pointed を用意する Applicative を用意する Monad を用意する いくつか型を実装していく ... 続きを読む
Scalaの型クラスを完全に理解する - Speaker Deck
All slide content and descriptions are owned by their creators. 続きを読む
まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
2016年9月に次の記事を書きました。 関数型プログラミングとオブジェクト指向について、何か書く、かも タイトルからして引き続く記事を予告しているのですが、その予告を実行することができませんでした。タイトル中の「何か」とは「型クラス」のことです。上記の記事の最後の部分は: 関数型プログラミングにもオブジェクト指向にも関係があって、今後重要度を増すであろう「型クラス」ですが、今述べた(愚痴った)よう... 続きを読む
インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
最近にわかに 型クラス が盛り上がっているようです。しかし、型クラスはインタフェースに似たものだという意見もあればまったく別のものだという意見もあり、混乱する人が多いのではないかと思います。 そのような混乱を招く理由は、 インタフェースと型クラスはどちらも抽象化を実現するためのもの であり、 インタフェースでも型クラスでもできること インタフェースでしかできないこと 型クラスでしかできないこと が... 続きを読む
Scalaで型クラスを使おう! - Qiita
はじめに 某記事 で、 implicitsなんて呼ばないで、各機能ごとに適切な名称で呼ぼう。あと、重要なのは型クラスだからそれだけ注意すればOK、という趣旨のことを書きましたが、どうやって使えばいいかは投げっぱなしだったのでその導入編だけでも書こうかと思います。この記事での目的は簡単で、 Scalaのコレクションのsumメソッド(とproductメソッド)を自作の有理数クラスに適用できるようにしよ... 続きを読む
型クラスはインターフェースとどう違うのか | プログラミング | POSTD
Haskellの型クラスは、Haskellを学び始めたばかりの多くの人にとっては難しい概念です。たいていの言語はこれを表すことが全くできませんし、それに近い概念も持っていません。この記事は、型クラスに興味を持っている人向けです。Haskellや関数型プログラミングの予備知識は必要ありません。Haskellの型クラスは、Haskellを学び始めたばかりの多くの人にとっては難しい概念です。たいていの言... 続きを読む
型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜 - tmp.txt
2015 - 12 - 18 型クラスを含んだ型推論を概観する 〜Typing Haskell in Haskell より〜 Haskell この記事は CAMPHOR- Advent Calendar 18日目の記事です. こんにちは @yu_i9 です.CAMPHOR- Advent Calendar には今年が初参加になります! 本記事では「Typing Haskell in Haskell... 続きを読む
Haskellによるオブジェクト指向
Haskellでの合成可能なオブジェクトの構成とその応用 木下郁章, 山本和彦, 2015 Haskellで状態を管理する際は、 一般的に代数データ型や型クラスが用いられるが、 データが拡張できないか、動的な性質を持たない。 そのためHaskellは、 複雑な状態を扱う問題領域には適していないと考えられてきた。 一方で、一般的なオブジェクト指向言語では、 オブジェクトを提供することでこの問題領域で... 続きを読む
で、結局型クラスって何がうれしいの、ということの説明 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
2014-07-01 で、結局型クラスって何がうれしいの、ということの説明 programming Scala 前回の記事では、Scala では implicit parameter を利用することで型クラスと同等のことが実現できることがわかりました。しかし前回の疑問として、「で、それの何がうれしいのよ」というのは残っていましたね。 今回はそのうれしみをなるべくわかりやすく説明したいと思います。 ... 続きを読む
Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
2014-06-30 Scala の implicit parameter は型クラスの一種とはどういうことなのか programming Scala なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の im... 続きを読む
traitで簡単にDCIを実装する - じゅんいち☆かとうの技術日誌
モデルの表現方法の一つとしてDCIの実装方法を、いろいろと模索しています。 暗黙的型変換と型クラスを使ったDCIがよいと説明しましたが、traitだけでもっと簡単に実現できないか考えてみました(この方法はLean Architectureにも紹介されている実装方式です)。 traitで仕様を表現する traitは、仕様を表現するためのインターフェイスとしても使えるし、他のクラスなどに合成するための... 続きを読む
すごいHaskellたのしく学ぼう輪読会 第7章 前編 - connpass
モナドに入る前に重要な章で、すごいHaskellたのしく学ぼうの最初の難所である 第7章 型や型クラスを自分で作ろう から読み始めます。それまでのところは予習してきてください。 続きを読む
怖くない型クラス
怖くない型クラス Presentation Transcript こわくない型クラス @kmizu Scala Conference in Japan 2013 座長 Scalaエヴァンジェリスト(に戻った?) こわくない話 型クラスは怖くない 型クラスは友達 本当に? 本当です(真顔) 簡単な例題 リストの要素を全て足し合わせた値を返 す関数 素直な解 def sum(list: List[In... 続きを読む
QAで学ぶMonad - あどけない話
Haskellこれは、Monad でつまづいた Haskeller のための Monad 入門です。Monadとは何ですか?Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b... 続きを読む