タグ

2017年1月10日のブックマーク (2件)

  • Javaプログラマが読むべき7個のAPI実装 - Kengo's blog

    10周くらい遅れている感がありますが気にせず紹介します。なお実装はJDKによって異なる可能性があるので、お手元のJDKに付属しているコードをご覧になることをおすすめします。 java.util.concurrent.atomic.AtomicInteger ロックフリーでスレッドセーフな実装を実現ことで有名なjava.util.concurrent.atomicパッケージの代表格。そんなすごいことをどう実装しているのか?というのは誰もが1度は気になるはず。openjdk7のコードを読むとこんな感じです。 public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; } } C

    Javaプログラマが読むべき7個のAPI実装 - Kengo's blog
    ilyaletre
    ilyaletre 2017/01/10
    いいなこれ、社内でリーディングやろうかな。
  • GHC.Generics - HaskellWiki

    GHC 7.2 includes improved support for datatype-generic programming through two features, enabled with two flags: DeriveGeneric and DefaultSignatures. We show how this all works in this page, starting with a detailed example.

    ilyaletre
    ilyaletre 2017/01/10
    型ではなく値のもつ構造に対して検査をかけて、ディスパッチ先の関数を定義するっていう用途で合ってるだろうか。だから値レベル(≠型レベル)のプログラミングの一種、とか。