このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

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

高次骨格はホモトピーか?

で、さらに15分ほど考えた。f:A→B, g:C→Dだとして、B 〜C であったとき、cod(f)≠dom(g) でも f;g を定義できるか? これが問題になる。結論を言えば「できない」。これはホモトピーとの類似を追いかけてみるとわかる。i:B〜C, j:B〜C であるとき、i〜j とは…

なんで鳥山明キャラ?

シェンロン ブルードラゴン 亀仙人 まっ、いいか。

高次骨格と高次亜群

1日15分くらいずつ考えている感じだな。高次骨格の構成はそれほど単純じゃないかもな。Cが2-圏として、C1をCの1-セルの集合だとする(1以下のセルではない)。C0の同値(2-同値)をもとにして、C1にも普通の同値関係を入れられるが、期待した構造とはどうも…

高次骨格の基本推論

高次骨格はずっと気になっている。高次ラッセル/バーンサイド代数というとカッコイイかも知れない。以下、ある種の同値関係と簡単な推論図に関してメモ。Cを2-圏とする。話を簡単にするために厳密(strict case)とする。Cのホム圏C(A, B)は圏だから、この…

EDoc関係

edoc:read_source/{1, 2} -- これは便利だ! 他にも意外に便利な関数があるかもよ。@headerfile を読む検索パスは、{includes, Path} where Path = [string()] オプションで指定される。includesはEPPの処理のときも共通に使われる。{doc_path, Path} where …

序数と基数の問題

本編に書こうと予定してるが、どうなるか? とりあえメモしておく。Ordは順序集合と単調写像(order preserving maps)の圏。離散順序を付ける関手 D:Set→Ordと忘却関手U:Ord→Setは随伴。Dは埋め込みと考えられるから、その像=離散順序集合の部分圏をDOrd⊆O…

undefだとわかるまで

動的呼び出し Mod:func(Arg) がundefで失敗するまでに、とんでもない時間がかかる。

コードリーディング

stdlib/proc_lib.erlを読むといいかも。

clash と crash と crush

意味も似てるし綴りも似てる。こりゃ間違うよな。 clash 衝突 crash 衝突、破壊、墜落、崩壊 crush つぶれる、崩壊、壊滅 flushも綴りに注意。

erl_callとEPMD幽霊

erl_call -s -sname test とかして、testノードが起動してないと、erl_callがERTSを起動しようとする(-s (startかな)オプションによる)。これが失敗した場合、どうもクリーンナップができてないようで、testというノードのエントリーがEPMDに残るようだ…

-nameオプションのロングネーム

ついでに書いておかなかった件。曖昧な記憶によると: -name node1@localhost -- ドメイン名にドットがないと、どっかで構文エラー。 -name node1@128.0.0.1 -- 忘れた。 -name node1@192.160.0.33 (ホントのIPアドレス) -- 忘れた。ダメだったかな。 -nam…

ついでに書いておく!

本編で「ErlangとJavaのあいだでリモートメッセージング」という記事を書いたとき、ERTSノードのロングネームについてかなり調べた。が、書かなかった。あれは書いておくべきだった。ついでにメモしておけば、今ごろ再度調べる手間は省けたものを!!!

ERL_WINDOW_TITLE けっこう便利

> werl -env ERL_WINDOW_TITLE "Test and Debug"

ERL_LIBS

ERL_LIBSが実在しないディレクトリを指すとwerlがクラッシュ。

format_error

stdlib/src/shell.erlに次のような行がある。 io:fwrite("** ~w: ~s **\n", [Line,apply(Mod,format_error,[What])]),Whatがエラーreasonで、対応するモジュールModのformat_error/1 を呼び出して 人間可読エラーメッセージを生成している。同じ手法は: ker…

deep lists, io data

io_libのman: Type:chars() = [char() | chars()]Function:char_list(Term) -> bool() Returns true if Term is a flat list of characters, otherwise it returns false.deep_char_list(Term) -> bool() Returns true if Term is a, possibly deep, list o…

EDoc、どうもダメ

%% @doc シリアライズ・ドライバ. %% %% @docfile "serialize.edoc"これはクラッシュしてしまう。日本語のせいではなくて、@docと@docfileは共存させられないようだ。

バーンサイドよりラッセルだろう

圏の骨格代数を、一部でバーンサイド代数と呼ぶが、集合圏のバーンサイド半環は、基数の代数ってことになる。基数が集合の同型類だと指摘したのは確かラッセルだよね。「3とは、この世にある『3つのモノからなる集まり』すべてからなる類」とか言っていた。…

コマンドライン引数

werl hi -myapp foo bar baz -myapp hoge -- fuga 1> init:get_plain_arguments(). ["fuga"] 2> init:get_arguments(). [{root,["C:\\INSTAL~1\\ERL56~1.4"]}, {progname,["erl"]}, {home,["C:\\Documents and Settings\\Hiyama\\Work","hi"]}, {myapp,["foo…

EDocエラクナイ

@typeによる型定義に長い説明を付けたいのだが、それができない。@docは、どこに書いても次の関数にかかってしまう。

-type属性

kernel/include/file.hrl で使われている。型に、pos_integer(), non_neg_integer() なんてのも使われている。

ライブラリモジュールの名前

file_libじゃなくて、filelib。まー、そういうこともあるよね。ところで、libはツマンネー。あれはなんだ?

見つかった!

stdlib/erl_posix_msg.erl : message(e2big) -> "argument list too long"; message(eacces) -> "permission denied"; message(eaddrinuse) -> "address already in use"; message(eaddrnotavail) -> "can't assign requested address"; message(eadv) -> "a…

EDocエライ

behaviour定義があると、勝手にメッセージを生成してくれる。 This module defines the serialize_json behaviour. Required callback functions: special_value/3, integer_value/3, real_value/3, string_value/3, start_array/2, end_array/2, start_obje…

ErlangとJSONとJavaScript

\ Erlang JSON JavaScript リストの成分 メンバー 要素 要素 マップの成分 要素 メンバー プロパティ

EDocのtype定義

@type の左辺は関数呼び出し形式、総称の型パラメータを入れてよい。 @type pair(X, Y) = {X, Y}別名や一部束縛は次のようにする。 @type tuple_2(X, Y) = pair(X, Y) @type tuple_2_atom(Y) = tuple_2(atom(), Y)レコード型の型定義は次のようにする。 @typ…

それと、アプリケーションに関して

アプリケーション・マスターって概念もあったな。グループリーダーってのはプロセスの概念だが、関係あったっけ?

Cygwin環境下でYAWSをインストール

ネタもと: http://yaws.hyber.org/wiki/showPage.yaws?node=YawsAndCygwin src/Makefile内の yaws_generated.erl に注目。 同、regenターゲットにも注目。 ん? EBIN_FILES=$(MODULES:%=../ebin/%.$(EMULATOR)) ../ebin/yaws.app このパーセントの使い方は?…

興味深い関数

code:clash/0 statistics/1 erlang:system_info/1 erlang:iolist_size/1 erlang:iolist_to_binary/1 erlang:port_command(Port, Command) erlang:bump_reductions/1 erlang:garbage_collect/0 erlang:open_port/2 erlang:port_close(Port) erlang:get_stackt…

spec指定属性の実際

R12B-4 (erl5.6.4) のlib:次のソースで -spec(...). が使われている。意外にもEDocでも使っている。 compiler-4.5.4/src/beam_disasm.erl compiler-4.5.4/src/core_parse.erl compiler-4.5.4/src/erl_bifs.erl cosNotification-1.1.7/src/cosNotification_G…