Brainfuck: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ripebot (discussione | contributi)
Nessun oggetto della modifica
Riga 72:
++++++++++
<nowiki>[</nowiki>
>+++++++>++++++++++>+++>+««<<<<-
<nowiki>]</nowiki>
>++. Loop iniziale (dopo viene stampata una H)
Riga 80:
+++. o
>++.
«<<+++++++++++++++.
>.
+++.
Riga 90:
Per mantenere leggibile il listato, viene iniziata una nuova linea dopo ciascun punto, che rappresenta il comando di output. Le lettere ''H'', ''e'', ''l'', ''l'' e ''o'' sono state inserite nel codice esclusivamente come [[commento|commenti]]. Il Brainfuck considera tutti i caratteri ad eccezione di +-<>[],. come dei commenti, cosicché non è necessaria una sintassi particolare per indicare un commento.
 
Il loop sulla prima linea imposta il valore iniziale dell'array: <tt>a[1] = 70</tt> (vicino al valore [[ASCII]] per il carattere 'H', 72), <tt>a[2] = 100</tt> (vicino alla 'e', 101), <tt>a[3] = 30</tt> (vicino a ' ', 32) e <tt>a[4] = 10</tt> (''new line'', a capo). Il loop funziona moltiplicando il valore di <tt>a[0]</tt>, <tt>10</tt>, salvando il risultato nelle altre celle. Al termine del loop, il puntatore all'array è zero. <tt»>>++</tt> incrementa di uno il puntatore, indicando <tt>a[1]</tt> che è <tt>70</tt>, poi aggiunge due a tale valore, con il risultato di 72 che è il valore per il carattere ASCII della lettera H maiuscola. Il punto al termine della linea indica l'output, causandone la visualizzazione.
 
La linea successiva sposta il puntatore all'array in alto di una posizione, poi aggiunge uno. <tt>a[2]</tt> è ora <tt>101</tt>, una 'e' minuscola, che viene poi mostrata con l'istruzione di output.
Riga 137:
Comunque, questo resetta il valore di [0] a 0. Possiamo ripristinare il valore di [0] dopo la copia prendendo vantaggio dell'abilità di copiare un valore in due posti alla volta. Per copiare il valore di [0] in entrambi [1] e [2] è semplice:
 
[->+>+«<<]
 
Possiamo prendere vantaggio di questo per ripristinare il valore [0]. Quindi, possiamo non distruttivamente copiare [0] a [1] (usando [2] come variabile temporanea) così come segue:
 
[->+>+«<<]»>>[-«<<+»>>]
 
===Complessi===
Riga 165:
==== Moltiplicazione ====
 
,>,,>++++++++[<------<------»>>-]
«<<[>[>+>+«<<-]»>>[«<<+»>>-]«<<<-]
»>>>++++++[<++++++++>-],<.>.
 
Come il precedente esempio, ma esegue la moltiplicazione, non l'addizione.