2008-05-01から1ヶ月間の記事一覧

「入門OCaml 〜プログラミング基礎と実践理解〜」

MySQLとの連携について記述があったんで読んでおいた。 (数えるほどしかないけど)これまで何冊か読んだ関数型言語の本のうち、変数の束縛について、主客が逆転してる説明は初めてだった。

島田荘司「御手洗潔の挨拶」

近所の本屋になかったので、ブックオフでゲット。短編集だった。薔薇十字探偵みたいなもんか。 「ギリシャの犬」に「水晶のピラミッド」て単語が出てきたけど先に読むべきなのか?こちらの方が先に出てるはずだけど。

東野圭吾「しのぶセンセにサヨナラ―浪花少年探偵団・独立編」

実家に帰る電車の中で読み終わった。それだけ。

我孫子武丸「弥勒の掌」

amazonで「殺戮にいたる病」を買ったときに目に入ったので一緒に買った。 あまりミステリ然としたミステリではないけど、面白いのは面白かった。 前回のもそうだったけど、濃度にばらつきがある気がする。後半に偏りすぎじゃないか。

「プログラミング in OCaml 関数型プログラミングの基礎からGUI構築まで」

F#を学習するための足がかりにするために読んでみた。 例によって途中から難易度が跳ね上がる。GUIのところなんてほぼ素通り。みんなTcl好きだなー。 それにしても、どうにも変な言語だと思った。とりあえずHaskellとErlangを先にやろうと。

我孫子武丸「殺戮にいたる病」

どこから来たのかさっぱり覚えてないけど、いつか読まねば、と思っていたので手に取って見た。 途中気持ち悪くて、ほんとどうしようかと思ったけど、なんとか最後までたどり着いた。雅子はほんとだめだ。 文庫あとがきには「本格探偵小説」だあるけど、あま…

「入門Luaプログラミング」

入門と冠しているだけあって、初心者向けもいいとこだった。特に前半。 Cとの連携あたりはさわりもいいとこで、ほとんど実がないと思う。紙幅足りなくて中途半端な説明するくらいなら、前半部分の話をもっと突っ込めばよかったんじゃないかと思う。

法月綸太郎「密閉教室 新装版」

「アルキメデス」なんかよりは読みやすかった。 途中、大神がぶった演説がなんのことやらさっぱり。話が二転三転した上に最後はそれかと。 法月が出てくる作品読まないと判断できないな。とりあえず「雪密室」あたりの改訂版出ないことには。

配列と動的配列

なんだか変な勘違いしてたので整理。 通常の配列の場合。 | a | a := #(8 + 9 A , B 'hello world' #'bon jours' (x y z) ). " 擬似コード風味で書いてみる。 a[1] = 8 a[2] = #+ a[3] = 9 a[4] = #A a[5] = #, a[6] = #B a[7] = 'hello world' a[8] = #'bon…

「プログラミングGauche」

初版がkonozamaだったころ、オライリーで注文したらすぐに届いた。 最初はするする読めたけど、マクロとか継続の話の辺りから急に話についていけなくなった。Learning Perlを読み始めたとき(初めてプログラミングに触れたとき)と同じような印象。 とりあえず…

綾辻行人「水車館の殺人 新装改訂版」

ふと気が向いて調べてみたら、いつの間にか出てたのでゲット。 犯人探しという意味では早々にわかってしまうのがあれだけど、内容自体はおもしろく読めた。 次の館はまだですか?半年後だったりして。

Squeak 3.10が出てた

早速落としてきた。スプラッシュ出るようになった。 日本語 [Package Loader]から「Japanese」で検索して出てきたやつを[install]。 特に問題なさそう。 旧バージョンからの環境移行 1.旧バージョン側で[Change Set]か[Change Sorter]のどちらかを起動、プロ…

Project Euler 017

問題17 1はone、2はtwo、3はthree...の要領で1000まで書いて、文字数を数える。 "and"の使い方はイギリス英語に準ずる。 ^(1 to: 1000) inject: 0 into: [ :sum :each | | s ar currentSum | s := each asWords. ar := s subStrings: #($ $-). currentSum :=…

グレンラガン

一つのエントリでごちゃごちゃ書くんじゃなくて、エントリ分ければいいんじゃん、ということにようやく気がついた。 グレンラガン見た。 アレっぽいなーとかコレっぽいなーとか思ってたけど、実はそれ以外にいろんなものがてんこ盛りだった。 ・途中(2-3部あ…

Project Euler 016

問題16 2の1000乗の各桁の数値の合計を求める。 ^(2 raisedTo: 1000) printString inject: 0 into: [ :tmp :each | tmp + each digitValue.]. 013と同じ。300桁程度では考えることは少ない。

Project Euler 015

問題15 20マス*20マスのグリッドの左上から右下へと到るルートは何通りあるか求める。 正直言って、解き方わからない。いろいろ調べてみたら、40C20ということなのでそういうことなら、と結城さんの本を引っ張りだしてきて式に当てはめてみる。 | n k | n :=…

東野圭吾「探偵倶楽部」

久しぶりに東野圭吾。やたらとあっさりめの短編集。これはこれでありかもわからんね、と思った。

Project Euler 014

問題14 数値nがあるとき、次のnを ・nが偶数なら、n/2 ・nが奇数なら、3n+1 という式で求めるとすると、すべての数値は1になるかもしんない(なんてことをCollatzが言ったとか言わなかったとか)。 n (チェーンが開始してからは100万を超えてもいいよ) またし…

Project Euler 013

問題13 50桁の数字が100個あるから、合計値の先頭10桁求める。 | numberList | numberList := #( 37107287533902102798797998220837590246510135740250 ...(略)... 53503534226472524250874054075591789781264330331690 ). ^(numberList sum printString tru…

Project Euler 012

積みっぱなしだったYsフェルガナを消化。後半きつかった。レベル上げしようにも補正入るからめんどくさい。総合的には面白かったからいいや。 問題12 三角数列のうち、約数の数が最初に500を超えるものを求める。 今回はC#が残ってた。実行してみたら、10分…

Project Euler 011

問題11 20*20のグリッドについて、たてよこななめにそれぞれ4つずつの数値を取り出して、その積の最大値を求める。 Perlのコードしかなかったので移植。 | table max | max := 0. table := { #(08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08…

Project Euler 010

問題10 200万より下の素数の合計を求める。 素数来た。最初に書いたコード。 ^((2 to: 2000000) select: [ :each | each isPrime ]) sum. 10分待ったけど帰ってこない。 ^2 + ((3 to: 2000000 by: 2) select: [ :each | each isPrime ]) sum. やっぱり帰って…

Project Euler 009

問題9 ピタゴリアントリプレットを考えると、a+b+c=1000となるものは1個しかない。そのときのabcの積を求める。 | limit | limit := 1000. (1 to: limit - 1) do: [ :a | (1 to: limit - 1 - a) do: [ :b | | c | c := limit - a - b. (a * a) + (b * b) = (…

Project Euler 008

問題8 1000桁の数値の中で、連続した5桁の掛け算のうち最大値を求める。 | s max | s := '73167...(略)...63450'. max := 0. (1 to: s size - 4) do: [ :each | | tmp | tmp := (s at: each) digitValue * (s at: (each+1)) digitValue * (s at: (each+2)) d…

Project Euler 007

もっとMacをいじり倒そうと思って、とりあえずMacPorts入れた。あと、GaucheとGHCもインストール。 問題7 10001番目の素数を求める。 | n seq | n := 3. seq := 2. [true] whileTrue: [ n isPrime ifTrue: [ seq > 10000 ifTrue: [^n]. seq := seq + 1.]. n …