No.14 ・ 視覚・構造系
><>(Fish)
= 盤面を走り、スタックを増やせる言語
- 読みにくさ
- ●●●○○
- 書きにくさ
- ●●●○○
- 誕生年
- 2009年
- 作者
- Harpyon
- 生まれた国
- 国は資料に記載なし
- 学べること
- プログラムの途中でスタックを増やし、作業場を切り分けられるということ
どんな言語か
名前は「fish(魚)」と読みます。><> の記号が魚の形に見えることから付いた名前です。2009年に Harpyon が作った2次元の言語で、esolangs.org では Befunge などに着想を得たスタックを使う言語として紹介されています。
プログラムは文字を並べた盤面で、左上から右へ向かって動き出すポインタが進みます。> < ^ v で向きを変え、/ \ のような鏡にぶつかると、進んできた向きに応じて曲がります。盤面の端まで来ると反対側へ回り込み、; に当たるかエラーになるまで止まりません。
特徴はスタックを何枚でも作れることです。[ で新しいスタックを作って上の数個だけを移すと、新しいスタックは元のものと切り離された作業場になります。] で消すと、中身は下のスタックへ戻ります。関数の中だけで使う変数のような使い方ができます。
プログラム自身の文字を読み書きする g・p もあります。数は 0〜9 に加えて a〜f(10〜15)を直接書け、割り算は小数のまま計算されます。
コード例(全文)
Hello, world!
>"Hello, world!"0r>o:?v;
^ <
文字列を積んで r で逆順にし、o で1文字ずつ出力します 実際に書いて動かすには ><>(Fish) の実行環境 へどうぞ。
ひとこと
盤面の上をポインタが走り、矢印と鏡で向きを変えます。Befunge に似ていますが、スタックを何枚にも増やせる点が違います。間違いがあるときのエラー表示は「something smells fishy...」の1種類だけです。
もっとくわしく(外部サイト): https://esolangs.org/wiki/Fish