2016年10月12日のブックマーク (2件)

  • C#での高階関数のすゝめ - Qiita

    はじめに 高階関数とは、引数や戻り値に関数を使う関数のことです。 関数型言語では当たり前のように使われていますが、手続き型言語ではそれほど使用されていないように感じます。さらにいうと言語によっては高階関数そのものが実装されていない場合もあります。 手続き型言語になれた人からしたら、高階関数の書き方には癖があると思うのですが、一度覚えると表現の幅が広がるので覚えておいて損はない考え方です。 今回はC#の例で話を進めていきます。C#ではデリゲートと呼ばれる関数を格納するオブジェクトを用いて高階関数を書けるようになっています。C#ではC言語の関数にあたるもののことをメソッドと言うので、コードの説明には「関数」でなく「メソッド」と書いていますが意味合いは同じです。 記述してあるコードですが動作確認を一切していません。そのままでは動かないかもしれないのであしからず。 みんなが好きなLinqの話題は出

    C#での高階関数のすゝめ - Qiita
    tamafuyou
    tamafuyou 2016/10/12
    設計にFuncとかAction取り入れてからクラス設計がだいぶ楽になった気がする。
  • H/Wの進化を活かしきるSQL Serverのインメモリテクノロジー

    日々のSQL Serverの商談活動でお客様と会話する際に「”インメモリ”だから早いんでしょ?」という質問をよく頂きます。”インメモリ” = 速い という漠然としたイメージが読者の皆さんの中、ひいてはこの業界の中に植え付けられているように感じています。 これはこれで間違いではないのですが、今回の記事ではSQL Serverとメモリ関連テクノロジーを少し掘り下げてみたいと思います。 SQL Serverに限らず古今東西の様々なリレーショナルデータベースは基的にメモリが今よりもはるかに高価で貴重なものだった時代に設計されています。よって、データは処理に必要な時にメモリに読み出し、通常はディスクに置いておくのに最適なアーキテクチャーを取っています。 しかし、この30年でメモリの価格は大幅に下がり、CPUはマルチコアが当たり前の世の中になってきました。実際に今日、CPUが40コア、搭載メモリが1

    H/Wの進化を活かしきるSQL Serverのインメモリテクノロジー