タグ

ブックマーク / qiita.com/lyrical_logical (4)

  • 型クラスの歴史を軽くひも解く - Qiita

    現在、型クラスは Haskell のみならず、様々な言語で実装されたり似たようなものが実装されている言語機能です。 そういった風潮にも拘わらず、型クラスはどうにも大仰に捉えられがちに感じます。勿論、Haskell でも当初の仕様に比べると、最新の仕様はややこしいし、GHC の拡張や他機能と組み合わせるともっとややこしいのは事実ですが。 ということで、型クラスとはそもそもどういう motivation で発明、導入されたのか、簡単に調べてみます。 Haskell の型クラスは 1992 年の Haskell 1.2 で導入されました。1.2 のレポートに以下のような記述があるので間違ってないはず(他の言語でより早く実装されてるかもしれないけどそこまで調べてると時間なくなるので見ないふりをする。)。 Haskell is a large and complex language. design

    型クラスの歴史を軽くひも解く - Qiita
    todesking
    todesking 2017/10/11
  • Visitor パターン再考 - Qiita

    オブジェクト指向 Advent Calendar というものを見つけたので、Visitor パターンについて書いてみます。 嘘です Visitor パターンについて書きたいけれど、Java Advent Calendar は埋まってしまってるので、それっぽい Advent Calendar に参加しただけです。別に Advent Calendar に参加しないといけない決まりなんてないんですけど。 デザインパターン Visitor パターンとは、デザインパターンの一つです。 そもそもデザインパターンとは何かというと、1995 年に Gamma らが "Gang of Four"、俗にいう GoF で提唱した、オブジェクト指向プログラミングによって特定領域の問題を解決しようとする際に頻出するイディオムのようなものです。 GoF で提唱されたデザインパターンは多くありますが、1995 年に発表

    Visitor パターン再考 - Qiita
    todesking
    todesking 2015/12/24
    Visitor奥深い
  • Java で higher kinded polymorphism を実現する - Qiita

    Disclaimer この記事では一般的な(一般的とは…?)Java プログラマにも理解してもらえるように、比較的理解が簡単なかわりに informal な説明をしています。higher kinded polymorphism に関する formal な情報を求めている人は…ちょっと探した感じでは Qiita にはないようなので、適当にぐぐるか、References を参照してください。 TL;DR 俺はスーパー Java プログラマだぜって人は記事最下部の References にある highj を参照してください。これ読まなくていいです。Don't Read. higher kinded polymorphism とは higher kinded polymorphism をさす言葉として、他にも type constructor polymorphism とか実に様々な呼称があるの

    Java で higher kinded polymorphism を実現する - Qiita
    todesking
    todesking 2015/12/17
    狐につままれたような気分になった
  • object がどうクラスファイルにコンパイルされるか - Qiita

    class Class { object InnerObject { def succ(n: Int) = n + 1 } } object OuterObject { def succ(n: Int) = n + 1 } コンパイル。 C:\Users\m\src\scala>scalac -version Scala compiler version 2.11.7 -- Copyright 2002-2013, LAMP/EPFL C:\Users\m\src\scala>scalac object.scala とりあえず OuterObject から。 C:\Users\m\src\scala>javap -c OuterObject Compiled from "object.scala" public final class OuterObject extends java.la

    object がどうクラスファイルにコンパイルされるか - Qiita
    todesking
    todesking 2015/12/13
    まずScala consoleに:javapコマンドがあるというのが有益だった
  • 1