てきとうなメモ

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

2007-01-01から1年間の記事一覧

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…

関数定義

こんな感じ. -module(foo). -export([fac/1, fib/1]). fac(0) -> 1; fac(X) -> X * fac(X - 1). fib(1) -> 1; fib(2) -> 1; fib(X) -> fib(X-1) + fib(X-2). erlangもハイライトしてくれるんだなあ. -module(XXX). でモジュール名を宣言. -export([func/a…

erlang-mode

emacsのerlang用モード.ソースコードに含まれている.ソースからインストールすると /usr/local/lib/erlang/lib/tools-/emacs この辺にインストールされるみたい.使い方はここらへんにまとまってた.

コメント

コメントは%で始まる %% foo module -module(foo). -export([fac/1]). fac(0) -> 1; % case of 0 fac(X) -> X * fac(X - 1).

09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63

http://09-f9-11-02-9d-74-e3-5b-d8-41-56-c5-63.com/del.icio.usあたりにあったので何かと思ったのだが,HD-DVDのキーらしい.おそらくこの不正コピー問題の部分に書かれているもので,このキーをつかうことでHD-DVDのリッピングができるらしい.で,これに…

Erlangさわってみる

次に来るプログラミング言語はErlangらしい.この次に来るというのがどの程度のものなのかC++やJavaレベルなのかRubyレベルのことなのかHaskellぐらいのことなのかは良く知らないが…ちょっと面白そうなのでさわってみた.公式サイトはここらしい.とりあえず…

erl

erlangのshell.キーバインドはemacs-like(C-f, C-b, C-a, C-e, C-d)で,ヒストリ機能(C-p, C-n)などもある.行ごとを評価するのではなく,.(ピリオド)までを評価する. 1> 1 + 2 1> . 3 2> 1 + 2. 3 3>終了するときはC-cしてabortを選ぶかhalt().を実行. 3…

WikipediaはWikiaとWikiを特別扱いしている

見たところ、nofollowタグが追加されたのは普通のアウトバウンドリンクだけのようだ。wikiとwikiを結ぶリンクにも、Wikipediaの商用版のスピンオフWikiaへのリンクにもnofollowタグは追加されていない。 WikipediaはWikiaとWikiを特別扱いしている | TechCru…

50年前の憲法大論争

50年前の憲法大論争 (講談社現代新書)作者: 保阪正康出版社/メーカー: 講談社発売日: 2007/04/19メディア: 新書購入: 2人 クリック: 8回この商品を含むブログ (17件) を見る昭和31年3月16日に開かれた,「第24回国会 衆議院内閣委員会公聴会 憲法調査会法案…

統計数字を疑う

統計数字を疑う なぜ実感とズレるのか? (光文社新書)作者: 門倉貴史出版社/メーカー: 光文社発売日: 2006/10/17メディア: 新書購入: 18人 クリック: 269回この商品を含むブログ (85件) を見る統計データにはいろいろなバイアスがかかっているいるので,そこ…

円周率を音楽に

http://www.popxpop.com/archives/2007/04/post_242.htmlなんか,神様のパズルでもそんなネタをやってたような,実際にやっている人がいるとは.まあ,ちょっと単調な感じがするけど.

Firefox重い

なんかしらないけど,重すぎる.とくにlivedoor readerとか使っていると不快感を覚えてくるので,ブラウザをSafariに変えてみた.でもSafariははてダのプレビュー機能とかが表示されなかったりするので,Firefoxも併用している.

redMine

Overview - Redminerailsで書かれたプロジェクト管理ツール.tracと比べると微妙に使いやすそうな気が.複数のプロジェクトを管理するというのはtracではちゃんとサポートされていなかった気がする.あとはパーソナライズドホームページみたいなのがあって,…

最近読んだ漫画

夜桜四重奏?ヨザクラカルテット?(1) (シリウスコミックス)作者: ヤスダスズヒト出版社/メーカー: 講談社発売日: 2006/09/22メディア: コミック購入: 5人 クリック: 71回この商品を含むブログ (151件) を見る絵がなんとなく良かったので買った.1話目が妖怪…

シャーロック・ホームズの冒険

シャーロック・ホームズの冒険 (新潮文庫)作者: コナンドイル,延原謙出版社/メーカー: 新潮社発売日: 1953/04/02メディア: 文庫購入: 7人 クリック: 54回この商品を含むブログ (97件) を見るシャーロック・ホームズシリーズの最初の短編集.「赤髪連盟」とか…