萌えハッカーニュースリーダー

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

出典: https://masatohagiwara.net/recto.html
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

Rectoは迷路のような言語、ということですね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search