2017-01-01から1年間の記事一覧
これはAmusement Creators Advent Calendar 2017の14日目の記事です. adventar.org 最小不動点と最大不動点のよく知られた話とか時相論理に絡めた話をゆるゆるっとするつもりです. 分かりにくかったり変なことを言っていれば気軽にご指摘ください. 記事を…
これはAmusement Creators Advent Calendar (ACAC) の6日目の記事です. adventar.org C++やC#にあってC言語にはない機能の一つにオーバーロード (overloading) というのがあります. これはC言語でもCPP(CPreProcessor)を使えば限定的ではあるけれどもオー…
覚え書き XeLaTeXやLuaLaTeXでは\tbaselineshift(縦組の和欧文のペースラインの位置調整)が定義されていないのでascmac.styのitemboxやscreenを使おうとすると ! Undefined control sequence. \screen ->\@savetbaselineshift \tbaselineshift \tbaselineshi…
ocamlcやocamloptでnyan.mlを-annotオプションを付けてコンパイルするとnyan.annotファイルが生成される。 このファイルにはコンパイルするときに得られた識別子のスコープとか式の型とか関数呼び出しが末尾再帰かそうでないかとかの情報が含まれています。…
WebAssembly (wasm) のテキスト表現でwastというものがある。 僕の所属しているAmusementCreatorsの48時間ゲームジャムでこのwastをがりがり書いて簡単なSTGを作った。 デモはこちら https://akitsu-sanae.github.io/works/wast-game/index.html ソースコー…
#define SELECTER(_1, _2, SELECT, ...) SELECT #define FOO(...) SELECTER(__VA_ARGS__, WAN, NYAN) (__VA_ARGS__) FOO(neko) // expanded to `NYAN (neko)` FOO(inu, dog) // expanded to `WAN (inu, dog)` 参考 c - Overloading Macro on Number of Argum…
Rustで以下のコードは違法 (0 .. 9).map(|i| i*i).collect::<[i32; 10]>::() これは配列がFromIteratorを実装していないため. こういう時はArrayVecを使う. 取り敢えずCargo.tomlのdependenciesに arrayvec = "0.3.20" を書き加えて extern crate arrayvec…