本文へスキップ
totonoe.tech

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

← エソラング図鑑トップへ

続けて整える

運営サイト

私たちが運営するサイト