SICP 読みつつ参照したりするのに丁度良い。いくらなんでも仕様書だけでは分からないし。
すっかり書き忘れていたのですが、今月の3日、秋葉原のヨドバシカメラで HHK Pro2 (墨/無刻印)を購入しました。\24,990。
Pro の無刻印なので使い心地も見た目も素晴らしいです。シリアルナンバーは001649。やっぱりこの値段じゃ殆ど売れないんですかね……。
これでトラックポイントが使えなくなってしまったので近いうちにワイヤレスマウスを買いたい。
とりあえずC++テンプレート風マクロでクイックソートを書き直してみた。以下は本体。
#include <stddef.h>
#define GENERATE_SORTING_FUNCTION(function_name,data_type) \
void function_name(data_type *base \
,const size_t size,int (*compare)(const data_type,const data_type)) \
{ \
size_t pivot_pos = 0,first2last = 0,last2first = size-1; \
data_type temp,pivot; \
while(pivot_pos+1 != size && !compare(base[pivot_pos],base[pivot_pos+1])){ \
pivot_pos++; \
} \
if(pivot_pos+1 == size){ \
return; \
} \
pivot = base[pivot_pos+(0 > compare(base[pivot_pos],base[pivot_pos+1]))]; \
while(first2last < last2first){ \
while(0 < compare(pivot,base[first2last]) && size-1 != first2last){ \
first2last++; \
} \
while(0 >= compare(pivot,base[last2first]) && last2first){ \
last2first--; \
} \
if(first2last < last2first){ \
temp = base[first2last]; \
base[first2last] = base[last2first]; \
base[last2first] = temp; \
} \
} \
function_name(base,first2last,compare); \
function_name(&base[first2last],size-first2last,compare); \
}
以下は使用例。本体と使用例をこの順でくっつけるとそのまま使えます。配列は初期化されていないので初期値がソートされます。
GENERATE_SORTING_FUNCTION(sort,int);
int compare_integer(int a,int b)
{
return a-b;
}
int main(void)
{
int array[32];
size_t counter = 0;
sort(array,32,compare_integer);
while(counter != 32){
printf("%d\n",array[counter]);
counter++;
}
return 0;
}
ここまでやるなら高機能プリプロセッサ自作しちゃった方が良い気がする。
時系列に適当に書きます。
朝5:30くらいに家を出て7時に有明到着。サークルチケットで7:30入場。
その後知り合いに頼んでいた C75 Key セットを入れたロッカーの鍵を貰った。
10:00に会場、30分間で買い物リストの殆どを消化。
その後、人が多くなってくるとアナログレコード(Blasterhead v.s. HARDCORE TANO*C)を持ち歩くのが怖くなってきたので委託先のスペースに置かせてもらって、買う物は特に無かったので一旦離脱。外の巨大のこぎりの横で休憩。
12:00くらいになると暖かくて寝そうになっていたので、再入場。この時点で"モビルフォース ガンガルVSガンガル"は完売していました。ありがとうございました。
その後、人が減ってきたので開場前にできなかった挨拶回り。西む-13a "葛城屋"と西よ-17a "RebRank"に行きました。
葛城屋は Stricter.org と同じでサイト運営に FLNet.org を使用していて、またサーバマシン提供者でもあるらしいという事で行ってみました。現行のサーバマシンは違う物だとか。
RebRank では hajime さんとゲーム用スクリプト言語の話とかをした。1時間くらい。
15:00の時点でまだBlasterhead v.s. HARDCORE TANO*Cが残っていたので2つめを購入。
16:30に会場を離脱。帰る途中に新木場駅のロッカーでC75 Keyセットを回収。電車内で寝過ごしたりしましたが、無事帰宅しました。お疲れ様でした!
新年早々風邪をひいて寝込んでいました。あけましておめでとうございます。