ノータブルコード
ノータブルコード18 - 真偽値を返すif/else
最近はレビューしていることが多いなぁと思っている須藤です。レビューをしていると「真偽値を返すif
/else
」をちょいちょい見かけるなぁと思い出したので18回目のノータブルコードとして紹介します。17回目のノータブルコードが2021年6月28日なので、3年強ぶりのノータブルコードです。久しぶり!
ノータブルコード17 - バッチファイルにLuaスクリプトを埋め込む技
最近、WindowsでLuaRocksを動かす機会があった林です。
今回はLuaRocksのインストール用のバッチファイルを見ていて印象に残った、「バッチファイルにLuaスクリプトを埋め込む技」を紹介します。
ノータブルコード16 - APLプログラマはいかにC言語を書くのか
あまり世の中で知られてない言語として配列処理(Array-Processing)言語という一群の言語があります。いずれもAPLというプログラミング言語から発展したもので、J・Q・Kといった言語が代表的です。これらの言語は「Array Processing」の名前の通り、配列、とくに多次元配列の処理に特化しています。
APLの流れをくむ言語の最大の特徴は、極限までに切り詰められた簡潔さです。この言語を使うといくつかの記号を組み合わせることで、複雑な配列操作を表現することができます。例えば、フィボナッチ数列を生成する関数を例にとると、Kでは{x{x,+/-2#x}/!2}
という16文字で表現できます。もっと複雑な例を出すと、ライフゲームは、わずか138バイトで実装できます。
ノータブルコード15 - MySQLの全文検索でplease, could_you
ノータブルコード13 - 複数の処理系やバージョンを考慮してライブラリーを検出できるようにする
第13回目のノータブルコードでは、collectdをビルドするときに印象に残ったconfigure.ac
のコードを紹介します。
ノータブルコード11 - 空になるかもしれないCのマクロの値を正規化
最近、GNU/Linux上のGCCとVisual C++のビルドでは同じ挙動なのにMinGWのビルドでだけ挙動が異なる件を調べていた須藤です。MinGWが提供するヘッダーファイルを見ていたら「お!」と思うコードがあったので11回目のノータブルコードとして紹介します。
ノータブルコード9 - C言語で文字列を扱うときはNULL終端されているかどうかに注意する
全文検索エンジンGroongaの他にPostgreSQLで高速に全文検索できる拡張PGroongaの開発にも参加している堀本です。 今回は、PGroongaの開発中に「注意しないと危ないな」と思ったコードを紹介します。