Wiseは、私がしばらく前に設計した単純なビット単位の言語です。Pythonのビット演算に基づいています。いくつかの操作があり、これらのほとんどはPythonの同等のシンボルと同じか、非常に似ています。
:
スタックの一番上を複製する?
スタックの上部を下部に回転させます!
スタックの下部を上部に回転させます[
]
スタックの最上部がゼロでないときにループする~
スタックの最上部ではない(-(n+1)
)-
スタックのトップを無効にします(-n
)>
スタックの一番上を一度右にビットシフトします(n//2
)<
スタックの一番上を一度左にビットシフトします(n*2
)^
xorスタックの上位2項目(Pythonと同じ)|
またはスタックの上位2項目(Pythonと同じ)&
スタックの上位2項目(Pythonと同じ)
Wiseで整数を作成するのは非常に簡単で、ゼロを作成し::^
て増分できる~-
ので、ゼロを作成して何度も増分できます。しかし、-
物事を削除すると、もう少し面白くなります。
残りの操作を使用して、すべての番号を作成できます。たとえば、ここは3です
~<<~
これ~
は、無限の0
ビット列であるゼロを負のビット、無限のビット列に変換し1
、それぞれが最後にビットを<
追加する0
ために機能します。終了すると、~
それぞれ0
が2つ1
のsが続くsの文字列になります、またはほとんどの人がそれを呼ぶように3。
仕事
正の整数を指定すると、そのソース(出力のソース、独自のソースで使用可能)n
なしで数値を作成するWiseプログラムを出力するプログラムを作成します。スタックの先頭に既にゼロがあると仮定することができます。-
-
これはメタゴルフで はなく コードゴルフなので、必ずしも出力ではなくソースコードの生成を最小限にすることを目指してください。
出力例
このリストは網羅的ではなく、単に可能な出力です
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:
空のスタックに適用されるプッシュします0
。空のスタックから複製することは明らかではないので、これは指定すべきだと思う0
positive integers