タグ

ブックマーク / ruicc.hatenablog.jp (3)

  • SetはFunctorである - think and error

    Haskell Advent Calendar 2013 9日目です。 概要 SetはFunctor。 Categorical Programming for Data Types with Restricted Parametricity rmonad: Restricted monad library なぜSetはFunctorになっていないのか Setを要素が重複しないデータ構造とします。Setはその性質のため、要素には比較出来ることが要求されます。Haskellで言うとEq制約です。まあ来重複しないことだけを要求するならEq制約だけでいいはずですが、SetがOrd制約を要求しているのは効率の良い実装にするためでしょう。containersパッケージのData.Setはバランス二分木で実装されています。 来SetはFunctorにすることが出来るはずです。しかし現状(GHC7.6

    SetはFunctorである - think and error
    xef
    xef 2013/12/10
  • 静的型付言語/動的型付言語のメリット/デメリットについて考えてみる - think and error

    http://d.hatena.ne.jp/perlcodesample/20130227/1361928810 Haskellが好きな人です。 普段0.4M行くらいのPHPコードなんとかしてます。 Haskellerへ 変な事言ってないかチェックお願いします。 動的型付言語のトレードオフ 変数に型が無い事のトレードオフが理解出来ていないと思われる。 件のエントリを見ると、変数に型が付いていない方が圧倒的に有利に見える。そうだったら世の中のソフトウェアは全て動的型付言語を用いるはずだ、そうなっていないのは静的型付言語にもメリットがあるからだ、という論を僕はここではしたくはない。 彼が書いている部分でそのような論を用いている箇所が有る。大規模サイトで実際に動的型付言語を用いている、だから十分に使える(はずだ)という。ここは彼の自分の論(型が付いていない方が有利)から発生していない、少しずるい

    静的型付言語/動的型付言語のメリット/デメリットについて考えてみる - think and error
    xef
    xef 2013/03/03
  • dataToExpQ - think and error

    Haskell Advent Calendar 2012二日目です。 一日目から飛ばしてきましたね。負けずに頑張らなければなりませんね。 QuasiQuotes書くときにdataToExpQ便利ですよね。 便利だけどこんさんが何言っているかわかんねえ!という人向けの記事です。 間違ってたらツッコミください。 (以下ではGHC7.4.1を用いています) 何故QuasiQuotesなのか 僕らエンジニアが扱うものは基何らかのシンタックスに則って書かれています。 つまりHaskellerはConfigファイルやSQL文字列、もしくはある言語ファイルなどを目の前にして、 「このファイルパーズして"Haskellのデータ構造"として欲しいなあ」とつぶやく訳です。 文字列から値生成ならまだランタイムに出来ますが、型の生成や型クラスの生成などとなるとコンパイルタイムにやるしかありません。 というわけで

    dataToExpQ - think and error
    xef
    xef 2012/12/05
  • 1