TL;DR
小さな壊れたプログラムを 1 つずつ直しながら、Zig を学ぶ練習問題集。Dave Gauer が始めたプロジェクトで、rustlings、Ruby Koans、The Little Schemer に影響を受けている。
仕組み
開発版の Zig を入れ、Codeberg からリポジトリを clone する。プロジェクトのフォルダで zig build を実行すると、次に直すべき問題とコンパイラのエラーがそのまま表示される。別のターミナルで zig build --watch を動かしておくと、保存するたびに修正を確かめられる。
zig build # 次の問題を確かめる
zig build --watch # 保存するたびに確かめる
zig build -Dn=19 # 19 番の問題だけを確かめる
zig build -Ds=27 # 27 番の問題から始める
zig build -Drandom # ランダムな問題を確かめる
zig build -Dreset # 進み具合をリセットするREADME によると、主な目的は Zig の言語の中核を学ぶことである。関数やループなどの基本から、comptime、スレッド、SIMD のベクトル演算まで扱い、標準ライブラリの文字列の書式、テスト、ファイル操作なども含む。文字列操作の問題は少ない。システムプログラミングの経験は求めていない。
注意点
安定版の Zig ではなく、README に書かれたビルド番号以降の開発版が必要になる。
Zig は活発に開発されているので、Ziglings は開発版の Zig に追従している。動く組み合わせの Zig と Ziglings がそろえば、そのまま使い続けられる。ただし、片方を更新すると、もう片方も更新が必要になることがある。安定版の Zig で使いたいときは、対応するタグを checkout する。