ArrowFuck(アローファック)は、プログラミング言語の一つ。Brainfuckに影響を受けた、難解プログラミング言語のひとつである。 ArrowFuckの命令はBrainfuckの命令に2つ加えたものである。 また、ArrowFuckはBrainfuckの上位互換である。

仕様 メモリの配列が2次元であることや命令が増えていること以外はほぼBrainfuckと同等である。以下は、ArrowFuckとBrainfuckの命令の対応表である。

ArrowFuck Brainfuck 内容> > ポインタを右に移動< < ポインタを左に移動+ + ポインタの指す値をインクリメント- - ポインタの指す値をデクリメント, , 入力から1バイトをポインタの指す値に代入. . ポインタの指す値をASCII文字として出力[ [ ポインタの指す値が0なら、対応する「[」にジャンプ] ] ポインタの指す値が非0なら、対応する「]」にジャンプ^ なし ポインタを上に移動v なし ポインタを下に移動

この表に記載されていない文字の動作は定義されておらず、コメントとみなして処理される。

サンプルコード Hello, World!プログラム 以下のソースコードは、Hello, World!を出力するプログラムである。ArrowFuckはBrainfuckの上位互換であるためBrainfuckのソースコードをそのまま使用できる。なので、このソースコードはQiitaのBrainfuck超入門より。このソースコードは、Brainfuckでも動作する。

+++++++++[>++++++++>+++++++++++>+++>+<<<<-]>.>++.+++++++..+++. >+++++.<<+++++++++++++++.>.+++.------.--------.>+.>+.

脚注

関連項目 Brainfuck 難解プログラミング言語

外部リンク Esolang wikiのArrowFuckの記事