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

ProductName プログラミングHaskell
Graham Hutton
オーム社 / ¥ 2,940 ()
通常3~6週間以内に発送

Canon EFレンズ 50mm F1.8 II

買った。

このまえ収穫したほうれん草のサラダを撮ったら美味しそうにみえる。

1258457986 1258457993

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

1258457999

これは楽しいですね。

ProductName Canon EFレンズ 50mm F1.8 II

キヤノン / ¥ 12,600 ()
在庫あり。

リスト内包表記で素数チェック

プログラミング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]

ってやればできるんだけど、二つ以上の要素になった場合が分からんかった。

ProductName プログラミングHaskell
Graham Hutton
オーム社 / 2940円 ( 2009-11-11 )


この本ほとんど疑似コード(?)なので考えるにはよいですな。お薦め。

今日の畑(小松菜とほうれん草収穫)

小松菜とほうれん草多すぎ。消費できるんだろうか?

1258266600 1258266609

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

1258266616

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

ベビークレヨン

1歳のアキオのプレゼントとしてもらった

ProductName ベビーコロール12color

エー・ジー / ¥ 1,344 ()
在庫あり。

が、娘のハートを掴んだ(予想通り)

今月静岡系の集まりを幾つか

地元度を高める月間開催中

第二回 静岡東部Twitterオフ回

@壱膳屋

皆様お疲れ様でした。幹事のuchisukeさんご苦労様でした。

  • ゆるくて面白かった。
  • iPhone率高し。
  • 朝霧Jamは良いということを再認識(来年は子連れ参加したい)
  • ラーメン
  • プログラマーっぽいヒト何人かいたけど、それ系の話はあんま無しの方向
  • idと飲み会での呼ばれ方が違うと帰ってきてから混乱する

関数型言語勉強会 立ち上げミーティング

流れ的にはhaskellになりそうな予感。本の厚さ的に「ふつケル」か「プログラミングHaskell」あたりになるのかなぁ。

  • 日 付:2009年11月28日(土)
  • 時 間:15時30分~17時30分
  • 場 所:静岡市産学交流センター 6F 演習室4 (http://www.hanjyou.jp/)
  • 地 図:http://www.hanjyou.jp/map.html
  • 定 員:48名
  • 費 用:調整中(一般 1000円,学生・未成年:無料)

静岡自体、なかなか行く機会がないのでちょっと楽しみ。ついでにコメヤス酒店にも寄ろうかしら

アキオ一歳

今日はアキオが一歳だからケーキでもつくっとく!

とかいわれて出社したら、昼前に、U隊長が緊急事態でお腹が痛くてどうしようもないので病院に運ばれたという連絡が。

慌てて帰る。っていうかアキオが一歳ってことは去年の今日もあのヒト救急車で運ばれてんですけど。

結果、風邪による過敏性腸症候群?だったらしいんだけど、げんなりしていてなにも出来そうにないので、娘とエネリア以来のお菓子作りを。パウンドケーキくらいなら普通に作れるんだけど、調理器具の場所を把握していないので意外に手間取った。もう少し積極的に家事をするようにしないとあかんなぁ。

1258108667 1258108646

チョコのプレート割れてもうた。

1258108661

アキオ1歳。

1258108654

そんな感じで、金曜は終了。

白隠正宗と地元のF1食材を楽しむ会

先週末に白隠正宗と地元のF1食材を楽しむ会に行ってきました。

企画をしていただいた、酒のいわせさん,みなみ妙見さん,白隠正宗さまどうもありがとうございました。

生桜海老は相変わらず美味い。

1258104752 1258104728

裾野の銀杏は大粒。そして鱒子はプチプチ感がたまらん。

1258104740 1258104802

にごりの旨さがヤバすぎ。今回がっつりいかれた。にごりにありがちなピリピリ感がなくてまろやか。そして山葵が。山葵をつまみに何杯でもいけた。

1258104784 1258104796

妙見甚六日記参照

1258104714 1258104722

まぐろの血合いとカラスミの寿司

1258104778 1258104764

金華豚とマグロの卵醤油和え

1258104758 1258104772

寿司

1258104734 1258104790

水菓子

1258104746

堪能した。満足。

そのうち、野菜と日本酒みたいな企画もあれば嬉しいですのう。ビオデリの温野菜サラダをつまみに日本酒をやるとかたまにやるけど、意外にいけると思うんですよね。

久礼

静岡酒みたいな感じ。

1258028560

ボキボキです

会社の自己啓発?支援制度みたいなのがあって簿記の試験に合格するとお小遣いとして数万円もらえるらしい。

テキスト代は自腹なので安いヤツを買って3級をとる。受かったら来年の6月に2級を目指す。