タグ

2009年2月21日のブックマーク (4件)

  • mad日記 - 2007-09-03 Template Haskell

    計算を静的に表す手段としてArrowが使えるという事をid:MaD:20070816で書いたわけですが、もっと強烈な手段としてTemplate Haskellがあります。 以前作ったOpというArrowでは(>>>)演算によって繋がれたArrowを一旦構文木としてデータ化し、最適化をした後に関数を合成するということをしました。 一方、Template Haskellを使うとHaskellのコード片から直接Haskellの内部表現を得られます。Template Haskellについてはhttp://haskell.org/haskellwiki/Template_Haskellのチュートリアルがとてもわかりやすいです。 % ghci -fth Prelude> :m +Language.Haskell.TH Prelude Language.Haskell.TH> runQ [| 1 + 2

    mad日記 - 2007-09-03 Template Haskell
  • A Note on Declarative Programming Paradigms and the Future of Definitional Programming

    UtbildningForskningSamarbeta med ossOm ChalmersAktuelltInstitutioner InstitutionenData- och informationsteknikVi bedriver forskning och utbildning inom AI, cybersäkerhet, interaktionsdesign, software engineering, computing science och datateknik - från grundforskning till direkta tillämpningar. Vi utbildar för framtiden och bedriver forskning nära näringslivet, organisationer och akademin för att

    A Note on Declarative Programming Paradigms and the Future of Definitional Programming
    ohyajapan
    ohyajapan 2009/02/21
    チュートリアルのまとめ
  • Arrowの心 - 2007-08-16 - mad日記

    昨日の続きです。記法がよいとかMonadみたいに副作用が扱えるとか言ったメリットをはるかに越えたArrowの素晴らしさについて紹介します。 reverse.reverse == id か? 自分が最初にArrowってすごいと気づいた問題がこれです。大学で同級生と話している時に気づきました。大して役に立つ例では無いですが、Arrowの新しい側面が見えてくる例です。 標準入力に対してreverse,reverse,headを順に実行して結果を出力するコードは以下のようになります。後の比較の為に敢えてArrowで書いています。 import Control.Arrow main :: IO () main = getContents >>= print. (reverse >>> reverse >>> head) リストを2回ひっくり返したら元に戻るだけなので、そのheadをとるという計算は一

    Arrowの心 - 2007-08-16 - mad日記
  • Masato_Takeichi

    ミニコンハンドブック(システム工学会編): 3.4言語プロセッサ, 3.5ユーティリティプログラム. pp.93-101, 朝倉書店, 昭和50年(1975). M.Takeichi. Pascal--- Implementation and Experience.  Journal of Faculty of Eng., University of Tokyo, B-34 (1), pp.129-136, 1977.

    ohyajapan
    ohyajapan 2009/02/21
    「関数プログラム言語の概念・発展・応用」がある