Wise è un semplice linguaggio bit per bit che ho progettato qualche tempo fa. Si basa sulle operazioni bit per bit di Python . Ha diverse operazioni la maggior parte di queste sono uguali o molto simili al simbolo equivalente in Python.
:Duplica la parte superiore della pila?Ruota la parte superiore della pila verso il basso!Ruota la parte inferiore della pila verso l'alto[]loop mentre la parte superiore dello stack non è zero~non in cima allo stack (-(n+1))-annulla la parte superiore dello stack (-n)>sposta la parte superiore dello stack una volta verso destra (n//2)<sposta la parte superiore dello stack una volta a sinistra (n*2)^xo i primi due elementi dello stack ( uguale a Python )|o i primi due elementi dello stack ( uguale a Python )&e i primi due elementi dello stack ( uguale a Python )
Creare un numero intero in Wise è abbastanza semplice con cui puoi fare zero ::^e incrementare con, ~-quindi fai zero e incrementalo un sacco di volte. Tuttavia se rimuoviamo le -cose diventano un po 'più interessanti.
Possiamo ancora fare ogni numero usando le restanti operazioni. Ad esempio qui è 3
~<<~
Questo funziona perché ~trasforma zero, una stringa infinita di 0bit, in negativa, una stringa infinita di 1bit, ognuno <aggiunge un 0po 'alla fine, quando abbiamo finito facciamo ciò ~che lo trasforma in una stringa di 0s seguita da due 1s , o come la maggior parte delle persone lo chiama 3.
Compito
Scrivi un programma che quando viene dato un numero intero positivo produrrà un programma Wise che creerà il numero nsenza alcuno -nella sua fonte (la fonte dell'output, che puoi usare -nella tua fonte). Si può presumere che ci sia già uno zero nella parte superiore della pila.
Questo è code-golf non meta-golf, quindi dovresti mirare a minimizzare il codice sorgente di generazione, non necessariamente l'output.
Esempi di output
Questo elenco non è esaustivo, sono semplicemente uscite possibili
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:applicato su una pila vuota spinge a 0. Penso che questo dovrebbe essere specificato, poiché non è ovvio che la duplicazione da uno stack vuoto dovrebbe dare0
positive integers