Wise est un langage simple au niveau du bit que j'ai conçu il y a quelque temps. Il est basé sur les opérations bit à bit de Python . Il a plusieurs opérations dont la plupart sont identiques ou très similaires au symbole équivalent en Python.
:Dupliquez le haut de la pile?Faire pivoter le haut de la pile vers le bas!Faire pivoter le bas de la pile vers le haut[]boucle alors que le haut de la pile n'est pas nul~pas le haut de la pile (-(n+1))-annuler le haut de la pile (-n)>décalage du bit une fois vers la droite en haut de la pile (n//2)<décaler le haut de la pile une fois vers la gauche (n*2)^xou les deux premiers éléments de la pile ( Identique à Python )|ou les deux premiers éléments de la pile ( comme Python )&et les deux premiers éléments de la pile ( identiques à Python )
Faire un entier dans Wise est assez simple, vous pouvez faire zéro avec ::^et l'incrémenter avec ~-donc vous faites zéro et l'incrémentez un tas de fois. Cependant, si nous supprimons les -choses, cela devient un peu plus intéressant.
Nous pouvons toujours faire chaque numéro en utilisant les opérations restantes. Par exemple, voici 3
~<<~
Cela fonctionne parce que ~transforme zéro, une chaîne infinie de 0bits, en négatif, une chaîne infinie de 1bits, chacun <ajoute un 0bit à la fin, lorsque nous avons terminé, nous faisons ~ce qui le transforme en une chaîne de 0s suivie de deux 1s , ou comme la plupart des gens l'appellent 3.
Tâche
Écrivez un programme qui, lorsqu'il reçoit un entier positif, produira un programme Wise qui créera le nombre nsans aucun -dans sa source (la source de la sortie, vous pouvez l'utiliser -dans votre propre source). Vous pouvez supposer qu'il y a déjà un zéro en haut de la pile.
Il s'agit de code-golf et non de méta-golf , vous devez donc viser à minimiser le code source généré, pas nécessairement la sortie.
Exemples de sorties
Cette liste n'est pas exhaustive ce sont simplement des sorties possibles
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:appliqué sur une pile vide pousse a 0. Je pense que cela devrait être spécifié, car il n'est pas évident que la duplication à partir d'une pile vide devrait donner0
positive integers