Wise es un lenguaje simple bit a bit que diseñé hace un tiempo. Se basa en las operaciones bit a bit de Python . Tiene varias operaciones, la mayoría de estas son iguales o muy similares al símbolo equivalente en Python.
:Duplicar la parte superior de la pila.?Gire la parte superior de la pila hacia abajo!Gire la parte inferior de la pila hacia arriba[]bucle mientras la parte superior de la pila no es cero~no la parte superior de la pila (-(n+1))-negar la parte superior de la pila (-n)>Desplazar la parte superior de la pila una vez a la derecha (n//2)<desplazar la parte superior de la pila una vez a la izquierda (n*2)^xo los dos primeros elementos de la pila ( igual que Python )|o los dos primeros elementos de la pila ( igual que Python )&y los dos primeros elementos de la pila ( igual que Python )
Hacer un número entero en Wise es bastante simple, puedes hacer cero con él ::^e incrementarlo ~-para que puedas hacer cero e incrementarlo varias veces. Sin embargo, si eliminamos las -cosas se vuelven un poco más interesantes.
Todavía podemos hacer cada número usando las operaciones restantes. Por ejemplo aquí hay 3
~<<~
Esto funciona porque ~convierte cero, una cadena infinita de 0bits, en uno negativo, una cadena infinita de 1bits, cada uno <agrega un 0bit al final, cuando terminamos hacemos lo ~que lo convierte en una cadena de 0s seguida de dos 1s , o como la mayoría de la gente lo llama 3.
Tarea
Escriba un programa que cuando se le dé un número entero positivo generará un programa Wise que creará el número nsin ninguno -en su fuente (la fuente de la salida, puede usarla -en su propia fuente). Puede suponer que ya hay un cero en la parte superior de la pila.
Este es el código de golf, no el meta-golf, por lo que debe intentar minimizar el código fuente de generación, no necesariamente la salida.
Salidas de ejemplo
Esta lista no es exhaustiva, simplemente son salidas posibles
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:aplicado en una pila vacía empuja a 0. Creo que esto debería especificarse, ya que no es obvio que duplicar desde una pila vacía debería dar0
positive integers