Danke Martin für 6 Bytes!
1="/}.!+/M8;
Erweitert:
1 = "
/ } . !
+ / M 8 ;
. . . .
. . .
Probieren Sie es online aus
Alt, antworte. Dies wird beibehalten, da die Bilder und Erläuterungen für neue Hexagony-Benutzer hilfreich sein können.
!).={!/"*10;$.[+{]
Erweitert:
! ) .
= { ! /
" * 1 0 ;
$ . [ +
{ ] .
Dies gibt die Fibonacci-Sequenz aus, die durch Zeilenumbrüche getrennt ist.
Probieren Sie es online! Seien Sie vorsichtig, der Online-Interpreter mag keine unendlichen Ausgaben.
Erläuterung
Es gibt zwei "Unterprogramme" für dieses Programm, die jeweils von einer der beiden verwendeten IPs ausgeführt werden. Die erste Routine druckt Zeilenumbrüche und die zweite die Fibonacci-Berechnung und Ausgabe.
Das erste Unterprogramm beginnt in der ersten Zeile und bewegt sich die ganze Zeit von links nach rechts. Er gibt zuerst den Wert am Speicherzeiger aus (initialisiert auf Null) und erhöht dann den Wert am Speicherzeiger um 1
. Nach dem No-Op springt die IP zur dritten Zeile, die zuerst in eine andere Speicherzelle wechselt und dann eine neue Zeile ausgibt. Da eine neue Zeile einen positiven Wert hat (ihr Wert ist 10), springt der Code immer zur nächsten fünften Zeile. Die fünfte Zeile gibt den Speicherzeiger auf unsere Fibonacci-Nummer zurück und wechselt dann zur anderen Subroutine. Wenn wir von dieser Subroutine zurückkehren, springt die IP nach der Ausführung eines No-Op in die dritte Zeile zurück.
Die zweite Unterroutine beginnt in der oberen rechten Ecke und bewegt sich nach Südosten. Nach einem No-Op werden wir auf die zweite Linie nach Westen geschickt. Diese Zeile gibt die aktuelle Fibonacci-Nummer aus, bevor der Speicherzeiger an die nächste Stelle bewegt wird. Dann springt die IP zur vierten Zeile, wo sie die nächste Fibonacci-Zahl unter Verwendung der vorherigen beiden berechnet. Dann gibt es die Kontrolle an die erste Subroutine zurück, aber wenn es die Kontrolle über das Programm wiedererlangt, fährt es fort, bis es auf einen Sprung trifft, wo es über den Spiegel springt, der ursprünglich verwendet wurde, um es nach Westen zu richten, während es zur zweiten Zeile zurückkehrt.
Vorläufige hübsche Bilder!
Die linke Seite des Bildes ist das Programm, die rechte Seite repräsentiert den Speicher. Das blaue Kästchen ist die erste IP, und beide IPs zeigen auf die nächste auszuführende Anweisung.
Hinweis: Bilder erscheinen möglicherweise nur für Personen mit ähnlich eingeschränkten Kenntnissen in Bildbearbeitungsprogrammen hübsch: PI fügt mindestens zwei weitere Iterationen hinzu, damit die Verwendung des *
Operators klarer wird.
Anmerkung 2: Ich habe die Antwort von alephalpha erst gesehen , nachdem ich das meiste geschrieben hatte. Ich dachte, dass sie aufgrund der Trennung immer noch wertvoll ist, aber die tatsächlichen Fibonacci-Teile unserer Programme sind sehr ähnlich. Außerdem ist dies das kleinste Hexagony-Programm, bei dem mehr als eine IP-Adresse verwendet wurde
^2
als Ersatz für denken0,1
. +1