Definieren wir eine einfache 2D-Sprache, die den unglaublich ursprünglichen Namen enthält . Befinge hat 5 Anweisungen:
<>^v
Richten Sie, wie in den meisten 2D-Esolangs, den Befehlszeiger in die entsprechenden Richtungen um..
ist ein No-Op.
Der Anweisungszeiger beginnt oben links und geht nach rechts. Wenn der Befehlszeiger an eine Kante gelangt, wird das Programm angehalten. Jedes Befinge-Programm wird offensichtlich entweder anhalten oder in eine Endlosschleife geraten, die nichts bewirkt. Hier sind zwei Beispiele:
Anhalten:
>.v
..<
Nicht haltend:
>....v
..v..<
..>v..
^..<..
Das Halteproblem ist für eine Turing-vollständige Sprache nicht lösbar, aber für diese. Ihre Aufgabe ist es, ein Programm (oder eine Funktion) zu schreiben, das / die eine Zeichenfolge als Eingabe verwendet, die das befinge- Programm darstellt, und einen Wahrheits- oder False-Wert zurückgibt, je nachdem, ob es anhält oder nicht.
- Sie können davon ausgehen, dass die Eingabe nur aus diesen Zeichen besteht und mit Leerzeichen aufgefüllt wird, um ein Rechteck zu bilden.
- Sie können einen beliebigen Satz von fünf Zeichen für die Anweisungen verwenden (z
adws
. B. ).
Testfälle
Anhalten:
.
v>
>^
....v....
....>...v
.^..<....
.......v<
.......v.
....^..<.
v<>v>v^
>v^>^>v
<>>^v<v
v^<>v^<
Nicht haltend:
>..v
^..<
>v<
v<.
>v.
v<.
>.^
>.>.>.v
.><.<.<
Das ist Code-Golf , also gewinnt das kürzeste Programm (in Bytes).
>..>.
oder macht ><
.