タグ

2014年12月25日のブックマーク (6件)

  • Haskell Relational Record をリリースしました - あどけない話

    Haskell Relational Record (HRR)尻叩き担当の山です。この記事では、HRR のリリースについて説明します。 なお、これは Haskell Advent Calendar 2014 の25日目の記事です。 HRR とは何か? HRRは、日比野さんが中心となって開発が進められている関係代数ライブラリです。Haskellで式を書くと、それがSQL文に変換され、データベースに問い合わせた結果が Haskell のレコードになります。以下のような特長があります。 抽象的:高レベルな式で表現すると、SQLが生成されます。対応している SQLサーバは、DB2、ProsgreSQLSQLiteMySQLMicroSoft SQL Server および OracleSQL です。 型安全:HRRの式を書いたHaskellのコードがコンパイルできれば、必ず正しいSQL文が生

    Haskell Relational Record をリリースしました - あどけない話
    ruicc
    ruicc 2014/12/25
    お、HRRで論文書くのか
  • 実は2014年に終結していた?--ブラウザ戦争の現状をおさらい

    現代のブラウザ戦争格的に始まったのは2004年のことだ。Mozillaの「Firefox」が2004年、「Internet Explorer」(IE)の完全かつ絶対的な市場支配に戦いを挑み、それから5年足らずでユーザー数を0人から数億人に伸ばすことに成功した。 Googleも2008年、「Google Chrome」ブラウザを発表して、それに続いた。Chromeは2012年にはFirefoxに追いついた。 この戦いは2014年に遂に終結したのかもしれない。 この10年間で多くのことが変わった。現在、モバイルデバイスの台数は従来のPCを上回っており、デスクトップブラウザの重要度はモバイルウェブクライアントやアプリに大きく劣るようになってしまった。現在の主要なプレーヤーは、Appleのモバイル版「Safari」とGoogleChromeだ。Mozillaは大きな過渡期を迎えており、Mic

    実は2014年に終結していた?--ブラウザ戦争の現状をおさらい
  • Cabal sandboxで実行ファイルをインストールする - maoeのブログ

    c2hsとかthreadscopeなど、ライブラリではなく実行ファイル + αを含むパッケージをcabal hellに陥ることなくホームディレクトリの.cabalにインストールするには--bindirと--datadirを指定してsandboxにインストールすればよい。 cabal get threadscope cd threadscope-0.2.6 cabal sandbox init cabal install --bindir ~/.cabal/bin --datadir ~/.cabal/share最後のコマンドは呪文みたいなものなのでシェルの履歴に入れておこう。 こうすればsandboxにインストールしているのでユーザのパッケージDBを壊すこともないし、実行ファイルとそれに必要なデータファイルは~/.cabalにインストールされるので、ソースディレクトリを削除しても問題無い。

    Cabal sandboxで実行ファイルをインストールする - maoeのブログ
    ruicc
    ruicc 2014/12/25
    --bindirと--datadir
  • How do you override Haskell type class instances provided by package code?

    ruicc
    ruicc 2014/12/25
    instance宣言も明示的にimport/export出来たらいいのかな
  • そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ

    はい、Webアプリエンジニア養成読 AdventCalendar2014です。突然トリをやる事になってしまったので、どうしたもんかとおもいます…。 「最終日だぞ…ちゃんとかかないといけない…しかしネタはない…そうだリンク集を作ろう!」とか思ったんですが、そもそもアドベントカレンダーってリンク集だよねって気付いて愕然としているクリスマスの夜です。現在朝の4時、これを書き終えて寝たい。 さて…何を話そう ここまでWebアプリエンジニア養成読アドベントカレンダーということで続けてきました。そして今日は25日、ついに最終日です! Webアプリエンジニア養成読 Advent Calendar 2014 - Qiita Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uz

    そのオブジェクト指向入門は間違っている(大げさ) - Webアプリエンジニア養成読本 AdventCalendar2014 25日目最終日! - uzullaがブログ
    ruicc
    ruicc 2014/12/25
    一つの巨大なプログラムを分割して個別のオブジェクトに分けられるようになったという点では以前よりは便利だが、組み合わせる能力が貧弱なことと状態をどのオブジェクトに持たせるべきかは自明でないということと抽
  • ラムダ計算で代数的データ型を表現する方法 - @syamino はてなダイアリー

    ラムダ計算でEither Either型の値をパターンマッチする状況を考えます。 「データコンストラクタのパターンマッチ」は,下図のようにしてラムダ計算で表現できます。 ラムダ計算でBool 今度は,Bool型の値をパターンマッチする状況を考えます。 TrueやFalseには引数が無いので,(3)や(4)はλで囲みません。 パターンマッチ = 「データコンストラクタを他の関数に置き換えること」 パターンマッチによって,Leftがlに置き換わります。以下同様です。 「データコンストラクタを置き換える」という概念について,もう少し詳しく考えていきます。 データコンストラクタの置き換え方は2種類ある リストのような再帰的なデータ型では,データコンストラクタの置き換え方が2種類あります。 data List a = Cons a (List a) | Nil (1) 全てのデータコンストラクタを置

    ラムダ計算で代数的データ型を表現する方法 - @syamino はてなダイアリー
    ruicc
    ruicc 2014/12/25
    分かり易いチャーチエンコーディングとスコットエンコーディング