てきとうなメモ

本の感想とか技術メモとか

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

関数の中の関数

言語を選ぶ基準 - lethevert is a programmerPerlで書くとRubyみたいになるかなと思ってたけど sub f { my $x = shift; my $g = sub { my $y = shift; $x + $y }; my $h = sub { my $x = shift; $g->(10) }; $h; } print f(10)->(1), "\n"; $ perl hoge.pl 2…

フューチャリスト宣言

フューチャリスト宣言 (ちくま新書)作者: 梅田望夫,茂木健一郎出版社/メーカー: 筑摩書房発売日: 2007/05/08メディア: 新書購入: 15人 クリック: 170回この商品を含むブログ (696件) を見るとりあえず読んだ.茂木さんの本は読んだこと無かったのだが梅田さ…

Google Hot Trends

Error - Houston ChronicleGoogle Trendsの新しい機能.最近最も検索されるキーワードTop100を出力する.現在のTop10はこんな感じ 1. singer irene 2. fellini film 3. monokini designer gernreich 4. julianne hough 5. what did mill mahar say was a way…

PHP

PHP

404 Blog Not Found:そろそろPHPに関して一言いっとくか釣り記事だとは思うのだがいろいろトラックバックされているので,あまりphpを知らない身としては勉強になる. ITT-WEB - DankogaiはPHPの外枠を押さえているが、知ってはいない あーありがち - よーし…

アンドロイドは電気羊の夢を見るか?

アンドロイドは電気羊の夢を見るか? (ハヤカワ文庫 SF (229))作者: フィリップ・K・ディック,カバーデザイン:土井宏明(ポジトロン),浅倉久志出版社/メーカー: 早川書房発売日: 1977/03/01メディア: 文庫購入: 70人 クリック: 769回この商品を含むブログ (418…

process dictionary

erlangはプロセスごとにディクショナリを持っている.putで値をいれ,getで取得し,eraseで消す. 1> put(foo, {1, 2, 3}). undefined 2> put(bar, "hoge"). undefined 3> get(foo). {1,2,3} 4> get(bar). "hoge" 5> get(). [{foo,{1,2,3}},{bar,"hoge"}] 6>…

reflexa

連想検索エンジン reflexa連想検索エンジン.「◯◯といえば××」という形式の検索を行う.wikipediaのデータを使っているらしい.基本的に名詞しか検索できないようなので,評価や動作,機能などを連想するというわけにはいかないらしい

小泉政権

小泉政権―「パトスの首相」は何を変えたのか (中公新書)作者: 内山融出版社/メーカー: 中央公論新社発売日: 2007/04メディア: 新書購入: 1人 クリック: 22回この商品を含むブログ (40件) を見る小泉政権5年5ヶ月に対して,首相が強いリーダーシップを持って…

Perl5.10のスライド

What's new in Perl 5.10?Nordic Perl WorkShopのスライド.'use feature'を使うことでPerl6の機能を結構使えるらしい.ぱっと見たところ sayが使える ブロックに属するstate変数 switch文のサポート. smart hash 正規表現がtrie最適化可能 この辺がおもし…

Java7にpropertyが

Google DriveC#-likeなpropertyがjavaに導入されるかもしれない.たしかに無駄にgetter/setterが多くて読みにくい.IDEが自動生成してくれるというのが逆に無意味にgetter/setterを増やしている気がする.

ファイル名の文字コード

PerlではUTF8文字列でマルチバイトなファイル名をちゃんと扱えないという話も書いておいてくださいな - 浅倉卓司@blog風味? - ひとりでもグループ 404 Blog Not Found:perl - utf8なファイル名 歴史は繰り返す、のかな - 浅倉卓司@blog風味? - ひとりで…

精霊の守り人

精霊の守り人 (新潮文庫)作者: 上橋菜穂子出版社/メーカー: 新潮社発売日: 2007/03/28メディア: 文庫購入: 14人 クリック: 135回この商品を含むブログ (334件) を見る東洋風ファンタジー.10年前ぐらいからシリーズが続いていて最近文庫化されたらしい.児童…

最近読んだ漫画

いわせてみてえもんだ (ヤングガンガンコミックス)作者: さと出版社/メーカー: スクウェア・エニックス発売日: 2007/04/25メディア: コミック クリック: 41回この商品を含むブログ (56件) を見るWeb漫画で結構有名だったものがいつのまにかコミックになって…

suscript separator

なぜsplit $;, $_[1]なのかは宿題ということで。 404 Blog Not Found:perl - 勝手に拡張 - tie my %hash, 'FizzBuzz' $;って何と思ったのでperldoc perlvar The subscript separator for multidimensional array emulation. If you refer to a hash element …

FizzBuzz

どうしてプログラマに・・・プログラムが書けないのか? Perlだとすぐ書けそうなので,勉強中のErlangで書いてみた. -module(f). -export([fizzbuzz/0]). fizzbuzz() -> lists:foreach(fun(X) -> io:format("~p~n", [fizzbuzz(X)]) end, lists:seq(1, 100)).…

totowa

単語の意味を大雑把に知るためのサービス.語の定義は以下のように抽出されるらしい. 語の定義をしていそうな文を探すモジュールこのモジュールは、人間が検索エンジンを使って語の定義を探す際に、人間がやりそうな行動や人間がしそうな判断を模倣できない…

文字コードを指定して開く

文字コードを指定して開く C-x RET c 文字コードを入力 RET C-x C-f 開きなおす C-x RET c 文字コードを入力 RET C-x C-v RETだそうです。 emacsで文字コードを指定して開く - PC日記 自動判別を失敗したときに使える.

The Way of Testivus

The Way of Testivus If you write code, write tests. Don’t get stuck on unit testing dogma. Embrace unit testing karma. Think of code and test as one. The test is more important than the unit. The best time to test is when the code is fresh…

ガード

ガードが真であるときにbodyが実行される.when ...で指定する.例えば,絶対値を求めるabs/1は以下のように定義できる. abs(N) when N >= 0 -> N; abs(N) -> -N.

if

ガードで指定しなくてもifで条件分岐できる abs(N) -> if N >= 0 -> N; true -> -N end. 構文は if Condition1 -> Expr1; ... ConditionN -> ExprN end

Case

パターンマッチの条件分岐もCaseを使って右辺に書くことができる.構文は case Expr of Pattern1 -> Expr1; ... PatternN -> ExprN end これでqsortを書き換えると, qsort(List) -> case List of [] -> []; [Pivot|Rest] -> qsort([X || X <- Rest, X =< Pi…

funと高階関数

funを使うと無名関数を作ることができる. 4> F = fun(X) -> X+1 end. #Fun<erl_eval.6.72228031> 5> F(1). 2 6> F(2). 3これを使って高階関数を書くことができる.例えばqsortに比較関数を指定できる. qsort([], _) -> []; qsort([Pivot|Rest], Func) -> qsort([X || X <- Rest,</erl_eval.6.72228031>…

数値

integerとfloatがある. 1> 42. 42 2> 3.14. 3.14000$で文字charの値 3> $A. 65 4> $a. 97 5> $\t. 9base#numberでbase進数のnumberの値.別に2,8,16進数に限っていない. 6> 2#1111. 15 7> 8#777. 511 8> 3#10. 3 9> 16#ff. 25536進数で止まった. 12> 36#1…

アトム

reference manualによると. An atom is a literal, a constant with name. いまいち理解していないし,説明しにくい.フラグとかに使われている.''で囲まれた文字列か,[a-z][\w@]*の形式をとる文字列がアトムになる.ので,以下の物はアトム. foo foo_ba…

Boolean

ErlangにはBoolean型はなく,trueとfalseというアトムのみ存在する.and,or,xor,notの論理演算子を利用できる. 1> true. true 2> false. false 3> true and true. true 4> true and false. false 5> true or false. true 6> false or false. false 7> true …

タプル

複合データ型.各要素へのアクセスは速い.リテラルは{}で囲まれた要素で表現する. 構造体を表現するのに利用される. 23> T = {"john", 23, male, {jan, 6}}. {"john",23,male,{jan,6}}BIF(built-in function)としてelement, setelement, sizeなどがある.…

リスト

複合データ型.各要素へのアクセスは遅い.[]で囲まれた要素で表現する 27> [1,2,3,4,5]. [1,2,3,4,5]prologみたく[|]でheadとtailを表す.[|]は2項演算子でconsと呼び,[]は定数でnilと呼ぶらしい. 6> [1 | [2 | []]]. [1,2]BIFとしてhd, tl, sizeなどがあ…

文字列

文字列は""で囲む 30> "erlang". "erlang"文字列は文字(数値)のリストなんで以下のように表現できる. 31> [$e, $r, $l, $a, $n, $g]. "erlang"リストなんで連結可能 32> "hello, " ++ "erlang". "hello, erlang"

比較演算子

通常の大小,同値比較演算. 40> 1 == 2. false 41> 1 /= 2. true 42> 1 < 2. true 43> 1 > 2. false 44> 1 =< 2. true 45> 1 >= 2. false同値でないのは/=で表現し,less thanが異なる型を比較したときは型の大小を比較するらしい.以下のような型の順序が…

リスト内包表現

[ Expr || Qualifier1, ..., QualifierN]で表現する.QualifierIはtrueかfalseを返す条件やX よくある例としてquicksort -module(foo). -export([qsort/1]). qsort([]) -> []; qsort([Pivot|Rest]) -> qsort([X || X <- Rest, X =< Pivot]) ++ [Pivot] ++ qs…