->と<-を割り当てといた。
(add-hook 'haskell-mode-hook '(lambda () (local-set-key "\C-j" (lambda () (interactive)(insert "->"))) (local-set-key "\M-j" (lambda ()(interactive)(insert "<-"))) ))
->と<-を割り当てといた。
(add-hook 'haskell-mode-hook '(lambda () (local-set-key "\C-j" (lambda () (interactive)(insert "->"))) (local-set-key "\M-j" (lambda ()(interactive)(insert "<-"))) ))
中里の大山にらうどんを食べにいった。
らうどんとは幅広の太麺で、つけ麺好きにはたまらん感じ

麺にはキャベツとモヤシがのっててジャンクな感じだけど、麺が饂飩みたいなのでジャンクさはあまり感じさせない。

U隊長の頼んだ、エビスター。ターメリックかなんかのスパイスが効いていて香りが良い。あと、エビ塩と比べて食べ飽きしにくいかも。

今回満足。
19112009 life
今週から、南極探検始めました。
ちょっと油断するとすぐ全滅するので、緊張感が持続する感じの楽しさ。これはおもしろいっすね。
19112009 Haskell
これはかなりナイスな本です。あんま細かいところに陥らずに関数型プログラミングの思考みたいなものが学べるようになってる。
モナドに関しても、「モナドとは?」から入るわけではなくて、8章のパーサー、9章の対話型プログラム、そして10章の型に至る過程で自然に出てくる。
個人的には4,5章の関数とリスト内包のとこと8-11章が面白かった。逆に最終章の13章はちょっとよくわからなかった。
特に最後の二つは、新鮮だった。
あとは暇をみつけて問題解いてく
18112009 Haskell
ご近所haskellerのringtaroさんがつぶやいてたので。
Prelude> :t (.)
(.) :: (b -> c) -> (a -> b) -> a -> c
Prelude> :t ($)
($) :: (a -> b) -> a -> b
(.)はb->cとa->bっていう関数を受け取ってa->cという関数を返す。だから関数合成
Prelude> :t head
head :: [a] -> a
Prelude> :t (drop 1)
(drop 1) :: [a] -> [a]
Prelude> :t head . (drop 1)
head . (drop 1) :: [a] -> a
($)は dropを評価した結果のリストをheadにわたすだけ。なので、下の書き方はだめ。
Prelude> :t ($) head (drop 1)
<interactive>:1:10:
Couldn't match expected type `[a]'
against inferred type `[a1] -> [a1]'
In the second argument of `($)', namely `(drop 1)'
In the expression: ($) head (drop 1)
括弧省略の記法なのに括弧入れまくり
Prelude> :t ($) head ((drop 1) [1,2,3])
($) head ((drop 1) [1,2,3]) :: (Num a) => a
17112009 life
買った。
このまえ収穫したほうれん草のサラダを撮ったら美味しそうにみえる。

娘が撮れとうるさいので。

これは楽しいですね。
プログラミングHaskell読みはじめた。この本はHaskellプログラミングの入門書というよりは、Haskellプログラミングとはどういう考え方で書いていくかの入門書的な感じがする。いきなりこれ読んでもhaskellでコード書けないんじゃないだろうか。
4章のリスト内包表記の章で、ある数の因数を求める関数を定義して、それを用いて素数判定をしていたのでpythonでもやってみた。
def factors(n): return [x for x in range(1,n+1) if n % x == 0] def is_prime(n): return True if len(factors(n)) == 2 else False
あとHaskellだと
[x|x <- xs | xs <- a]
でconcatenateできて便利なんでこれもpythonで、とか思ったんだけど
リストの要素が常にひとつのときのみ
a = [[1], [2], [3]] [x for [x] in a] # [1, 2, 3]
ってやればできるんだけど、二つ以上の要素になった場合が分からんかった。
この本ほとんど疑似コード(?)なので考えるにはよいですな。お薦め。
15112009 家庭菜園
小松菜とほうれん草多すぎ。消費できるんだろうか?

娘が抜きたい抜きたいと言い続け、結局抜いてしまったベビーキャロット。

ベビーにすらなっていない。あともう少しで収穫できるかな。