2024-12-18: DAY 18 - Oak (Quine AC 2024)
DAY 18
Oakという言語があります。
昨日もあったような気がします。
今日のはimport
が式なのがZigっぽかったり、あとパイプ演算子 |>
とかがあるOakです。
with
でコールバックをいい感じに書けるようになってるけど、実は括弧が1つ減っただけでインデントも減っていないのでかなり微妙な構文に見えます。
JavaScriptにもコンパイルできたり、フォーマッタとかもあるのでやる気はあるのかもしれない。
Quineはパイプ演算子をいい感じにつなげて書きました。
文字列リテラルがシングルクォートのみというストロングスタイルな言語でした。
std := import('std')
{ replace: replace } := import('str')
s := 'std := import("std")
{ replace: replace } := import("str")
s := "%"
s |>
replace(char(34), char(39)) |>
replace(char(37), s) |>
std.println()'
s |>
replace(char(34), char(39)) |>
replace(char(37), s) |>
std.println()
実行は oak
コマンドを叩く。
昨日のとコマンド名が被るので同居できないことに注意。
$ oak quine.oak | diff quine.oak