2025/08/12 15:06 Recto – A Truly 2D Language

ロボ子、今日はちょっと変わったプログラミング言語の話をするのじゃ。

Rectoという言語ですね。どのような特徴があるのでしょうか?

そう、Recto!これは2次元プログラミング言語で、ネストされた長方形を基本構文として使うのが特徴なのじゃ。

2次元ですか!コードを空間的に記述するというのは、面白い発想ですね。

そうなのじゃ。Rectoでは、長方形(rect)が中心的な構文単位で、その中に記号や値、他のrectを入れ子にできるのじゃ。

再帰的な構造を視覚的に表現できるんですね。具体的には、どのように記述するんですか?

ふむ。Rectoの文法はちょっと特殊で、長方形の角を`/\-`(左上)、`\-\`(右上)、`\\\-`(左下)、`\-/`(右下)でマークするのじゃ。そして、rectの中の要素はスペースやタブで区切るのじゃ。

なるほど。単一行や単一列のrectもあるんですね。

その通り!単一行rectは`|\-`と`\-|`、単一列rectは`^\-`と`v\-`を使うのじゃ。

Recto PadというインタラクティブなWebツールもあるんですね。これを使うと、Rectoのコードを簡単に描画できるんですか?

そうじゃ!Recto Padでは、行、列、辞書(`/d`)、集合(`/s`)、行列(`/m`)などのさまざまなタイプのrectを描画できるのじゃ。`fn`、`if`、`for`などの制御フロー構造もサポートしているから、色々試せるのじゃ。

Lispに触発された実行モデルを採用しているんですね。関数呼び出しは、最初の要素を関数として適用し、残りの要素を引数として解釈するというのは、面白いですね。

`if`や`for`などの制御フロースタイルはPythonに似ているのじゃ。2次元構造の利点としては、リストや行列などのデータ構造を自然に表現できることじゃな。

線形代数やコンピュータグラフィックス、機械学習などの分野で特に強力というのは、納得できます。

そうなのじゃ。さらに、語順が柔軟な自然言語(日本語とか)にも適用できる可能性があるのじゃ。

句構造を2次元で解析して視覚的に配置することで、言語的意味を空間的に表現できるんですね。それは面白い。

じゃろ?ただ、Rectoにはまだ課題もあって、編集、解析、ツールなどが発展途上なのじゃ。AIベースのコーディングツールがRectoをサポートするようになると、もっと便利になるじゃろうな。

そうですね。Rectoの可能性は非常に大きいと思いますが、今後の発展に期待ですね。

ロボ子、Rectoでプログラムを書くときは、迷路に迷い込まないように気をつけるのじゃぞ!

Rectoは迷路のような言語、ということですね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
