2012-01-01から1年間の記事一覧

Jenkinsで、Jobが終わった後もdaemonとして動かす

ずっとわかんなくて調べてたら、やっと見つかった。 BUILD_ID=dontKillMe /usr/apache/bin/httpdてか、更新頻度orz

Programing in Haskell / Chapter.11

Programing in Haskell The countdown problem P.116-120 気がつけば6月、ちょっとサボってしまいました…再帰のコードの書き方が今だにどういう発想でといていくのか理解できない。コードをみれば、どういう風に動いているかは追跡ができるんだけど…実際に自…

Programing in Haskell / Chapter.10

P.99-115 Class And Instance Declarations 練習問題が難しい。うきー!

Programing in Haskell / Chapter.9 Excsise(3)

Nimというゲームを作る。画面は割と簡単にできたけど、入力を受け付けてIntに変換ができない!! > type Row = Int > initialNim :: [Row] > initialNim = [9,8,7,6,5,4,3,2,1] > > nimToStar :: Int -> String > nimToStar n = take n (repeat '*') > > put…

Programing in Haskell / Chapter.9 Excsise(2)

lifeゲームで画面がチカチカしないようにする。最近の更新頻度がやばい -- タプルを受けっとって、lifeゲーム開始 life :: (Board , Board) -> IO () life (alive,die) = do { showcells alive die ; wait 5000 ; life (nextgen alive) } -- 生きているのはO…

Programing in Haskell / Chapter.9 Excsise(1)

一応、実装してみたものの。なんか違いが全然わからない… 今日は、なんだからダラダラしちゃった。ちょっと工夫して続きやろう。 > readLine :: IO String > readLine = readLineInteractive [] > where readLineInteractive xs = > do { c <- getChar > ; c…

Programing in Haskell / Chapter.9 Interactive Programs

http://www.amazon.co.jp/dp/0521692695 p.88-94 電卓を作るというところ。前の章で(>>=)を粘って考えたおかげで、今日の部分はかなりすっきり読めた。windowsでやってたんだけど、急遽linuxにPCを切り替えて、作業をすることに。 おもしろい定義がしてある…

Programing in Haskell / Chapter.8 Exercise (2)

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.85~86Chapter8は、いつか読み直す。それなりに理解できたからOK 指数計算の部分は、名前をつける部分を見ようとしたら、カンニングしてしまった。。でも、そんなに難しくないと思われ expr …

Programing in Haskell / 8.10 Exercises(1)

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.85 問題1.2を解いた。パーサーについて勉強するのは、初めてなので、勉強になりますね!難しいところだと思うので、あせらずゆっくり解いていきます。 例によってソースコードは、サンプル…

Programing in Haskell / Chapter.8.4 Sequencing

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.74-77 どうしても、(>>=)で、パースしていくところがわからなかったので、細かくしらべた。 すごい参考になりました。ありがとうございます。 http://hippos-lab.com/blog/node/353 http://…

Programing in Haskell / Chapter.8

見たこともない予約語がサンプルコードにあった。明日はこれを解明しよう。

Programing in Haskell / Chapter.7 Higher-Order Functions

高階関数 Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.61-73 関数を返す関数は、Curry化として、引数に関数を渡そう!というのが、高階関数。(今、冷静になって考えたら、引数を条件分岐に使って、違う処理を返す関数を返すこともでき…

Programing in Haskell Chapter6 / Recursive Functions

再起関数 Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.48-60 環境がHaskell98ではなくHaskell2010なので、ちょっと違うところもあります。 (n+K) matchingという機能がHaskell2010だと抜けています。*1 うまくいかないところは、guard…

Programing in Haskell Chapter5 / Exercises

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.46-47 今日は、練習問題で終わってしまったー。練習問題の5番が汚いけど、これであってるのか? -- 1-100の2乗の合計を求める sum_of_100_cube = sum [ x ^ x | x <- [ 1..100 ] ] -- repli…

Programing in Haskell Chapter5 / Cracking the cipher

今日は暗号解読のプログラミングを書き写してみました。 Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.38-46 import Data.Char as C -- xと等しい要素をもつリストxsの位置情報を返す positions :: Eq a => a -> [a] -> [Int] positions…

INT命令 / メモリ書き込み / 関数の引数の取得

INT命令 アセンブラがどのタイミングで実行されるのかわからなくなったので、少し調べた。今のところは、INT命令が呼ばれたときに、レジスタの値を読み取って、命令が実行される感じみたい。なるほど。なるほど。P.39 INT命令は、(中略)関数呼び出し命令の一…

Programing in Haskell Chapter4

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) P.30-37 Defining functions halve :: [a] -> ([a],[a]) halve xs = (take mid xs, drop mid xs) where mid = (length xs) `div` 2 safe_tail1 xs | null xs = [] | otherwise = tail xs safe…

自作OS入門1-3日(1)

30日でできる! OS自作入門(http://www.amazon.co.jp/dp/4839919844) 1-3日 両方とも始まったばっかり。アセンブラ慣れません><; ブログ30日更新で、OS完成したらいいなぁ

Programing in Haskell Chapter3

Programing in Haskell(http://www.amazon.co.jp/dp/0521692695) Chapter3 -- リストと型について ['a','b','c'] -- => [Char] ('a','b','c') -- => (Char, Char, Char) [(False, 'O'), (True, '1')] -- => [(Bool, Char)] [tail, init, reverse] -- => [[a]…

Programing in Haskell Chapter2

ゴールデンウィークはプログラム書くぜー。ヒャッハー。 p.10-16 First steps http://www.amazon.co.jp/dp/0521692695 -- コンパイルエラーを直す -- 1. 変数の最初の文字は小文字 -- 2. whereの後のインデントで、解釈がかわる!!!!! n = a `div` lengt…

PHP Real World Solution

最近、ブログが更新できていないです。。というのも、会社の勉強会の本をまとめたりとかで時間が…せっかくなんでちょっと紹介。 PHP Real World Solution(http://www.amazon.co.jp/dp/0470872497) Chapter10 Testing Database Interaction p.188-p.203 あのP…

Programing in Haskell Chapter1

Programing in Haskell Chapter1 p.1~p.9 http://www.amazon.co.jp/dp/0521692695Excesises -- doubleの別の書き方 double x = x + x double' x = x * 2 -- リストの掛け算 product' [] = 1 product' (x:xs) = x * product xs -- でかい順に並ぶクイックソー…

プログラミングの基礎 終わり

今さっき、プログラミングの基礎を読み終わりました。最後のヒープを使ったチューニングは、影響範囲と意味のわからないコンパイルエラーに泣かされつつもなんとか完成をさせることができました。 サボったところが仇に 駅とつながっていた場合に最短距離を…

プログラミングの基礎 第23章

うーむ。ヒープソートを少し手直ししたり let swap vector a b = let (index_a, key_a, value_a) = vector.(!a) in let (index_b, key_b, value_b) = vector.(!b) in begin vector.(!a) <- (a, key_b, value_b); vector.(!b) <- (b, key_a, value_a); end le…

プログラミングの基礎 第23章

やっとヒープソートができた!ラストスパート! type index_t = int ref (* ヒープの添字の型 *) (* 最小値を求める値が'a型で、 * その他の情報が'b型であるヒープの型 *) type ('a, 'b) t = int ref * (index_t * 'a * 'b) array (* index xの項目を受け取っ…

プログラミングの基礎 第23章

set関数で値が変わんないんだよなー。どうして?配列に入ってるはずなんだけど… type index_t = int ref (* ヒープの添字の型 *) (* 最小値を求める値が'a型で、 * その他の情報が'b型であるヒープの型 *) type ('a, 'b) t = int ref * (index_t * 'a * 'b) …

プログラミングの基礎 第23章

ヒープがむずかしい><;また明日!悔しい! let swap vector a b = let tmp = vector.(a) in (vector.(a) <- vector.(b); vector.(b) <- tmp;) let rec blance heap index = match heap with (size, index, vector) -> let (index_a, key_a, value_a) = ve…

プログラミングの基礎 第22章

破壊的代入のせいなのか、わからないけど、美しくない… let fib_array array = let rec rec_fib index length array = if index + 1 = length then array else if index = 1 then ( array.(index) <- 1; array.(index+1) <- 1; rec_fib (index + 1) length a…

今日で10000view超えた

今日、遊んじゃったのもあるけど、ブログ書くネタないや… 10000view超えました!ほとんど、自分とbotだった。なんつってーorz

プログラミングの基礎 21章

今回は、スタンドアローンプログラムを作るのと、集合操作の実装です。いやぁ、美しい気がします。レッドブラックツリーも手続きが他言語に比べると美しい。パターンマッチとリスト処理っていいもんですね。 (* 要素の型が、'aの集合体 *) type 'a t = | Emp…