こんにちは。@junk0612 です。
この記事は、ESM Advent Calender 2021 の4日目の記事です。
前置き
12月、師走になりました。界隈ではアドベントカレンダーが盛り上がり、世間では様々な場所でイルミネーションが行われ、友人と「もう12月かよ、今年あれもこれもできんかったわ〜」と無駄話する、そんな季節です。
来年の話をすると鬼が笑うと言いますが、来年の言語はすでにお決まりですか? 僕は Rust 面白そうとか TypeScript ちゃんと触っておきたいとかアセンブリなんていいんじゃないのとかいろいろ考えてしまってなかなか決まりません。年明けまでに決めておかないと……
本題
前置きがだいぶ長くなりました。
新しい言語を学んでいて、アプリやゲームを作るほどまだ手に馴染んでいないけど、Hello, World! じゃないもうちょっと難しいプログラムを書きたくなったとき、皆さんは何を書きますか?
僕は再帰下降パーサが好きなので、「四則演算の式を再帰下降で構文解析するパーサ」をよく書きます。Ruby で書いたコードの Gist です。 https://gist.github.com/junk0612/b79d080a5c4a6c34efc85dc56b63b29e
この問題の気に入っているところは、ゴールを自分である程度調整できるところです。四則演算でゴールして作りたいアプリの作業に移ってもいいですし、改良できるところはいろいろあるので、気分が乗ったらそれに手を付けても構いません。
実はこの話題、たまたま Twitter でみかけて (どこだったか失念しましたが……)、JSON のパーサを書いているとか、言語特性を考えてその都度書くものを変えているとか話していて、みんな意外と違っていて面白いなと思ったのでした。
どんな物を書いているか、Twitter などで反応をもらえると嬉しいです (さらに書いたものを GitHub にまとめてこちらからご応募いただけると泣いて喜びます)。