月別: 2013年2月

Home / 月別: 2013年2月

表現の種類

2013-02-28 | Haskell | コメントはまだありません

おねーさんです。
今日も昨日も行き帰りの電車の中では”すごいHaskell”を読み、速やかに昏睡状態へと移行する動作を続けております。Haskellはすごい。

ここ数日で最もいらいらするのは畳み込みです。
foldl。そうか。foldl1。ちょっとちがう内容だから数字つけたのね。そうか。いや、これは看過できぬ。
きっと深淵で無駄のない洗練された理由があるんだとは思いますけど、いまのあたしはこう思う。
「ほんとに頭の良い人が作ったの?センス悪くない?あまりにも場当たり過ぎじゃない?」
こういうところでガックリきて、はーまじかーなえるわーってなって寝るんだわ。
#foldlというのは左畳込みとかいう処理をする関数さんであるらしいです。なるほどわからん。

tnomura9さんの「tnomuraのブログ」というサイトをこないだ見つけて、たまに読んでいます。
Haskell 記事リスト」というカテゴリがまとめられていて、まだ最初の方だけしか読めてないけれど、書き口がわかりやすくて読みやすい。
すごいHaskellとともにこのサイトを副読本として読んでいこうと思います。ありがたいなあ、こういう記事を置いてくれる人がいて。

いろんな表現があるのだな

その、tnomura9さんのページに例題が出ているので、それをちょいちょいやってみる。

「1から10までの数の2倍の数のリストを出す」

あたし:
Prelude> [x*2 | x <-  [1..10]]

リスト内包表記だ。Pythonで覚えたんだワイルドだろう。

上記のページ:
Prelude> map (* 2) [1..10]

オ-ゥ。
もうここで違う。結果は同じよ?同じなんだけど、map関数を使うこと、「(*2)って関数」を与えること、このへんの発想があたしに欠落しているということがよくわかる。
はーなるほど。次。

「1から10までの数の平方数はどうだろうか。」
次の行を読まずにまず自分で書く。わかってんだよmapだろmap。

あたし:
Prelude> map (^2) [1..10]

で、

上記のページ:
Prelude> map (\n -> n * n) [1..10]

む、むめいかんすう。。。
むろんやってることは同じではございますが、そういう表現もあることを知った上で、どっちの書き方を選択するか、といったふうにしておきたいものです。

Prelude> :t \n -> n*n
\n -> n*n :: Num a => a -> a
Prelude> :t (^2)
(^2) :: Num a => a -> a

Python覚えたての頃、何をやってたかを書き残しておけばよかったなあ。言語ってどうやって覚えるんだっけなー。

中種仕込中

2013-02-28 | パン焼き日記, 台所ホビー, 酵母 | コメントはまだありません

週末にパンを作ろうと思い、木曜の夜に中種を仕込みました。はやかったかなー。
リンゴジュースをのませている我が家の屁こきピザデブどもですが、ビン底で寝てばかりの連中がかなり増えました。一般にオリと呼ばれているやつです。
上澄みは綺麗にあたくしが飲んで(素晴らしいシードルでした!)、下にたまったオリの一部を小麦粉に混ぜ、就寝。
20時間後には3倍近くに膨れてました。寒いのに元気良すぎだ。
ちょっと予想外に発酵ペースが早いので、冷蔵庫にしまうことにしました。こやつらは後日、追加のコナとか色々混ぜてコッペパンなどになる予定。
寒い台所に放置してなお、かなりのペースで膨らんじゃってたので、過発酵がこわいです。
もしダメだったらこねなおしてピザ生地にしてしまおう。

あたしのつくるパン

2013-02-27 | パン焼き日記, 台所ホビー | コメントはまだありません

主食といえばコメ、パン、パスタや麺類くらいですかね。
あたし大抵のものは食べられるデブに適した食の趣向を持っておりますが、やっぱりいちばんは米がいい。雑穀米でも白いのでも、押し麦混じっていても餅米でも、お米が好きでございます。
一方の代表格はパンでしょうが、かつて、あたしそれほどパンに強い興味をいだいてはおりませんでした。
空気だらけでスカスカだから。
あんなスカスカのもんでなく米がいいわ、といって生きてきました。
こんな自分がまさかパン作りを面白がってやるようになるとは予想もしとりませんでしたよ。菌と糖類、温度や水分の絶妙な按配が出来を左右するメカニズムに惚れたんだと思います。
#パスタ・そば・うどんも大好き。クスクスも大好き。

自分でパンを焼くようになってこっち、どっかで外食をするたびに、食べる機会があるものならパンを頼むようになりました。ファミレスでなんちゃらセットを頼んで、ライスでなくパン。一年前のあたしが見たら目をひん剥いているであろうと思います。
ココスでもロイホでもいいんですが、頻繁ではないにしろあちこちでパンを食べますと、目の前にある、このよくできたパンと、あたしの焼いた「あたしがやったにしては」よくできたパンを比べることになるわけです。
「けっこう今回はいい出来じゃないかなー」
とか言っていたのが一転、
「嫁よすまぬ。あれはパンでなく泥だ」
と頭を垂れるといった具合。厳しい現実の前には、謙虚でなくてはなりません。ふわっと焼けたなーと思っても、それ焼いた直後だけなんだよね。翌朝は硬くなってしまう。
先週末はパンを焼かずに過ごしました。まだ在庫があるからですが、水分に関する巨大な勘違いを修正すべく、今週末はなんとかパンを焼く時間をこさえたいものだと思っております。金曜日が帰社日、土曜日が会議。日曜日に頑張るしかないお(´・ω・`)

また、いちどツヤツヤのパンを作ることができて満足したっぽくて、こんどはドリュールなしのパンを焼きたいなーなどと考えるようになりました。さらさらぱりっとした皮の素朴なパンもいいよね。
はー。パン教室いきたい。

瓶の底にいる連中がかなりの量になってきたので、そろそろ小麦粉を食わせる頃合い。
葡萄酒用の酵母買っちゃったんだけど出番ないなあ。

ドットつなぎ記法

2013-02-26 | Haskell | コメントはまだありません

あたくしにとってドット(.)というのは、文字列結合を指すものにほかなりませんでした。後にいろんな世界で色んな意味をもつ記号であることを知るにいたり、言語ごとの思想の違いであるとかに目がクラクラした次第であり、し続けている次第であります。
ほんでHaskell。
ドットつなぎは、関数合成です(キリ
あー、そっすか。関数の、合成っすか。失敗すると外道スライムが沸いたりするっすか?

すごいHaskellのp99。

import Data.Char
import Data.List

digitSum :: Int -> Int
digitSum = sum . map digitToInt . show

数字列を受け取り文字列に変換して、各文字(数字)の合計をするというサンプル。本にある例文です。
1234と入れたら、1+2+3+4で10を返すと。
で、これがまたわからない。ドットが関数合成なるものであることは見ました本で。
で、これ、えーと、引数どこいった。
これはえーと、あまりにも引数が自明なあまり省略しましたみたいな話ですか?
で、色々こねくり回していると、どうも、

digitSum 1234

は、

(sum (map digitToInt (show 1234)))

と等しいようだということがわかりました。

  1. showは受け取った値を文字列にする、
    1234→”1234”
  2. digitToIntは文字0-fを数値にする、
    “1”→1
  3. mapはdigitToIntを各桁に対して行う、
    [“1″,”2″,”3″,”4”]→[1,2,3,4]
  4. sumで合計する
    1+2+3+4

とすると、

digitSum = sum . map digitToInt . show

の右端から順に読んでいくと同じことになるわけだー?
なんで右から読むのと左から読むのとあるんだ。読む向きがわかんなくて目がチカチカする。。。
リスト内包表記もPythonさん経由で慣れてるというのは大きいにしろ、やはり視線が左右に泳ぐ傾向があり、さくっとわかりやすく、左から右へ、流れるように読みたいものだと思う昨今です。
どちらを先に学んだかでしかないんだろうけど、

Haskell:
sum . map digitToInt . show

これと、

jQueryなど:
uu().yaa().taa()

みたいなのがこう、頭のなかで混ざってですね、マーブル模様になるんすよ。
関数の合成とメソッドチェーンとは違うものか?きっと違うな?少なくとも読む方向は逆だな?
そんなかんじでモヤモヤしております。
違う思想、哲学、体系を学ぶというのは、ほんとうに大変なことだなあ。

このままじゃ脳が外道スライムになるっすよー。

りんごとはちみつ

2013-02-26 | ミード, 台所ホビー, 酵母 | コメントはまだありません

日々、瓶の底にたまった屁こきピザデブ共(オリ)を確認しては、
「起きろ」
とばかりにシャッフルしてやり、ジュースの糖分を食わすことに血道を上げております。
うちの子たちはだいぶ数が増えた感がありまして、この趣味をはじめたばかりの頃に比べると、ジュースを食っていくスピードがだいぶ違います。発酵の過程そのものへの不安がなくなってきました。
むろんこれは寒い時期だからの話で、春以降気温が上がり、発酵スピードが上がり、一方で管理も忙しくなるという流れが待っています。部屋の中で普通に放置とかがリスクを負うようになるわけで、注意したいところ。
そういう季節を経験してみないとわからんことでもありますが、発泡スチロールのケースでも用意してやろうかなと考えています。夏場の気温とかほんとうに危険。誰も居ない間にビンが爆発しましたとか目も当てられない。ヨメにも怒られます。

先日、クリアタイプのりんごジュースを食わせた発酵液を菌どもから取り上げ、飲んでみました。
発酵で連中が盛り上がっているときは液が濁ってるんですが、だいたい食い尽くしてやる気がなくなると、連中はそこに沈んでじーっとするんですね。混濁タイプのりんごジュースかと思うほど濁っていた発酵液が綺麗に晴れ上がる。上澄みだけいただいて、オリには別途砂糖を食わせ、次回作へ備えさせたり、小麦粉を食わせてパンの種にしたりしています。
リンゴは非常に良い出来で、簡単に仕上がりました。家庭用で飲むならいいなーコレ。
雑味の少ない、キリッとした飲み物になってました。小岩井やるな。

りんごジュースは小さい瓶にあと幾分か残るだけなので、また仕込もうと思っています。
同時に進めていて、出来上がりが楽しみなのが蜂蜜。
SKYRIMプレイヤーなら一度は飲んでみたい「ミード」を作っています。作るといってもこれまた簡単な話で、蜂蜜を食わせて終わり。
調べて納得しましたが、ミードを作るには蜂蜜を水で薄めたものを醸すんですね。
蜂蜜は糖度が高すぎて、3000年経とうが腐らないので、水で薄めて糖度を下げ、菌が繁殖できる状態にしてやる必要があると。
蜂蜜って花粉集めて色々アレしたあとで、ちっこいハチどもが羽で風を送り、水分を飛ばして保存しているわけです。せっかく水分飛ばしたのにニンゲンは水で薄めちゃうわけだ。酷い話ですね。
このミードはちょこちょこ味見してますが、まだまだかかりそうです。糖度高すぎて発酵の進みが悪いのかも。