Differenze tra le versioni di "Brainfuck"
nessun oggetto della modifica
m (Bot: sostituzioni standard) |
|||
++++++++++
<nowiki>[</nowiki>
>+++++++>++++++++++>+++>+
<nowiki>]</nowiki>
>++. Loop iniziale (dopo viene stampata una H)
+++. o
>++.
>.
+++.
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
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.
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===
==== Moltiplicazione ====
,>,,>++++++++[<------<------
Come il precedente esempio, ma esegue la moltiplicazione, non l'addizione.
|