2010-10-01から1ヶ月間の記事一覧

ループ

http://tnomura9.exblog.jp/12169729/ 自分で再帰を書かなくてもどっちもなんとかなる. 以下 import Control.Monad しているということで n 回ループ 今何回目のループかを知りたいときはリストを使って forM_ [1..n] $ \i -> do putStrLn $ "loop " ++ sho…

clang_complete.vim

Vim

clang にはコード補完をサポートする機能があって % clang -cc1 -fsyntax-only -code-completion-at=$file:$line:$col $fileというように使うと,構文構造から補完の候補を表示してくれる. この機能の詳しいドキュメントがどこにあるのかわからないが,まぁ…

AST

抽象構文木を表現したいときというのはよくあると思うんだけど,Java で具体的にどういう風に表現するのがいいのかわからない. 普段は代数的データ型とかヴァリアントとか呼ばれているもので表現しているのだけど,残念なことに Java には無い. そういえば…

Haskell はデフォルトで遅延評価することだとか,スペースリークとはどんなものかとかはわかっているつもりでも, import Data.IORef main = do r <- newIORef undefined v <- readIORef r writeIORef r (v+1) putStrLn "done" これが error ではなく正常に…

Python is now Python 3

http://www.archlinux.org/news/python-is-now-python-3/ というわけでついに python パッケージが Python 3.1.2 になった. それに伴って本家のリポジトリにある python 依存なパッケージがリビルドされて python2 に依存するようになった. そっちはうまく…

NamedFieldPuns, RecordWildCards

初めて知ったのでメモ. NamedFieldPuns 旧名 RecordPuns. レコード型のパターンマッチを書くときの手間を少し減らすもの. もともと data C = C { field1 :: Int, field2 :: String } f C { field1 = x } = x + 1 というようにパターンマッチを書けるのだ…

SSL/TLS

Haskell で https な通信を行おうとしたら http://hackage.haskell.org/package/curl http://hackage.haskell.org/package/download-curl といった curl を利用したライブラリを使うのが(たぶん)普通だった. が,最近純粋に Haskell を用いて作られた tls …

OMake

omake を使ってみる. http://omake.metaprl.org/index.html AUR にもあるが,そのままだと ocaml 3.12.0 でビルドできない.どうやら警告の種類が増えて,警告をエラーとして扱っているのでそのままではビルドできなくなってしまったらしい. そこで http:/…