チャック・ノリスのように数える


58

されているようによく知られ

チャック・ノリスは無限に数えました。二回

ほかに

チャック・ノリスは逆方向に無限に数えられます。

また、おそらくあまり知られていませんが、チャック・ノリスは英語に加えて少しスペイン語話すことができます

挑戦

2つの異なる言語で実行できるプログラム(または関数)を作成します。1つの言語では、プログラムはシーケンスを出力する必要があります

1, 1, 2, 2, 3, 3, 4, 4, ...

他の言語では、シーケンス(先行ゼロを含む)を生成する必要があります

1, 2, ..., 9, 01, 11, 21, 31, ..., 89, 99, 001, 101, 201, ...

ルール

  • すべてのプログラミング言語でプログラムまたは機能が許可されます。標準的な抜け穴は禁止されています。
  • 同じ言語の異なるバージョン(Python 2/3など)は、異なる言語としてカウントされません。関連する言語(C / C ++やMatlab / Octaveなど)は異なるものとしてカウントされます。
  • 入力は行われません。
  • プログラムは、ユーザーが停止するまでシーケンスの用語を出力し続ける必要があります。プログラムはそれ自体で停止しないため、最後に出力を生成することはできません。プログラムの実行中に、連続的またはバッチで生成する必要があります。
  • 出力はSTDOUTまたは同等のものを使用するか、グラフィックウィンドウに表示できます。各用語を隣接する用語と明確に区​​別できる限り、シーケンス用語間の数値以外の区切り文字を使用できます。用語間で画面がクリアされる場合も許容されます。
  • どちらのシーケンスもの0代わりに開始でき1ます。その場合、0他の数字と同様に、「2回」シーケンスで繰り返す必要があります。
  • 先頭のゼロは、「後方」シーケンスで重要です。たとえば、10番目の用語は01;です。どちら1001受け入れられません。
  • 2つの言語が異なる文字エンコーディングを使用している場合、プログラムは文字ではなくそのbytesによって定義されます。つまり、バイトは2つの言語で同じである必要があります。
  • バイト単位の最短コードが優先されます。

8
Downvoters、改善のための提案はありますか?
ルイスメンドー

29
チャック・ノリスは数え切れないほど強力です。もしそうなら、彼が数える最初の数は無限を超え、既知の数学の領域を打ち砕くでしょう。したがって、私は競争することを拒否します。
魔法のタコUr

11
@carusocomputing、チャックノリスがすべてを完了して以来、世界中で腕立て伏せが不足していることを考えると、非常に賢明です。
-Wossname

33
チャックノリスはこのチャレンジを0バイトで完了できます。彼はコンピューターを見るだけで、コンピューターは好きなことをします。
コドスジョンソン

17
チャック・ノリスはこの挑戦に勝とうとはせず、ただ負けることを許しました。
ナット

回答:


18

05AB1E / ゼリー 14  13バイト

Adnanのおかげで-1バイト(ポッピングのない印刷で3重になるのを避ける)

生バイト(16進数):

31 5b 3d 3d 3e 5d fc 06 b6 3b 87 08 15

05AB1Eコード・ページ

1[==>]üε¶;‡ηΩ

オンラインでお試しください!

ゼリーコード・ページ

1[==>]‘©Ṛ;⁷®ß

オンラインでお試しください!

どうやって?

05AB1Eのプログラムは、改行で区切られた各エントリにダブルカウント数を出力します。

1[==>]üε¶;‡ηΩ
1             - push 1 onto the stack
 [            - start infinite loop:
  =           - print top of stack
   =          - print top of stack
    >         -   increment the top of the stack (pop(1), x+=1, push)
     ]        - end the infinite loop
      üε¶;‡ηΩ - this code is never executed nor is it parsed

ゼリーのプログラムは、改行で区切られた各エントリに反転し、カウントを出力します。

パーサーは、囲まれたリテラル[との間の有効なリテラルを扱い]ます。そうでない場合、これらのバイトは未定義のトークンであり、コードを行に分割するトークンと同等になります。==>リテラルとして解析されないため、コードは事実上次のとおりです。

1 - link 1 (not executed but parsed)
1 - literal 1

==> - link 2 (not executed but parsed)
=   - left equals right? (vectorises)
 =  - left equals right? (vectorises)
  > - is greater than the right argument? (vectorises)

‘©Ṛ;⁷®ß - Main link: no arguments
‘       - increment (implicit 0 on left increments to 1 on the first pass)
 ©      - copy the result to the register and yield it
  Ṛ     - reverse, this has an implicit decimal list build, e.g. 142 -> [2,4,1]
    ⁷   - a newline character
   ;    - concatenate, e.g. [2,4,1] -> [2,4,1,'\n']
     ®  - recall the number from the register, e.g. 142
        - The chain has reduced to one item of arity 0, causing a pre-evaluation print:
        -     ...and since the list contains a character it gets smashed together
        -     e.g. [2,4,1,'\n'] prints 241 followed by a newline character
      ß - call this link with the same arity, e.g. as a monad with left = 142

それはゼリーのために働くかどうかはチェックしていませんが、それは仕事をしている場合、あなたは置き換えることができますÐ,,によって==
アドナン

Jellyで解析する必要があります。info.txtでポッピングのない印刷物を探していましたが、見当たりませんでした。ありがとう。
ジョナサンアラン

26

パイソン2 / C(打ち鳴らす)109 107 100 84 95 88 89 88 87 84バイト

i=0;
#/*
while 1:i+=1L;print`i`[::-1]
'''*/
a(){for(;;)printf("%i %1$i ",++i);}//'''

Python:オンラインで試してみてください!

C:オンラインで試してみてください!

PythonコードのLは、区切り文字の一部です。

説明:

Cコードでは、最初にiを0に設定します。次に、Pythonコードが行くコメント(ステートメントの#Cで有効なコード)を開始し#includeます。コメントの最後で、変数を永久にインクリメントし、スペースで区切って2回出力する関数を定義します。次に、コメントを開始します。

Pythonコードで、i=0;iをゼロに設定します。Pythonは、#単一行のコメントを開始するため、次の行を無視します。その後、永久にインクリメントし、長い数値に変換して、逆の文字列表現を出力します。longの「L」は区切り文字の一部です。その後、複数行の文字列を開始してCコードをコメント化し、後で終了します。

 

@LuisMendoのおかげで-2バイト。@ZacharyTのおかげで-7バイト。@ZacharyTのおかげで-6バイト増えました。@ mbomb007のおかげでバグを修正するには+11バイト。@Doorknobのおかげで-7バイト。@Doorknobのおかげでバグを修正するために+1バイト。@yoannのおかげで-1バイト。@yoannのおかげで-1バイト増えました。@Cyoceのおかげで-3バイト。


うーん、Cコードで再帰を使用できると思いますa(i){printf("%i %i ",i,i);a(i+1)}
--eneil

whileCコードにループを使用しないのはなぜですか?
enedil

@enedilより多くのバイトが必要です。
同志SparklePony

`i`代わりに使用できると思いますstr(i)
チョイス

を使用for(;;)printf("%i %1$i ",i++);して1バイトを保存できます。1$ある位置引数指示printf(フォーマット文字列の後に)最初の引数を表示します。
yoann

12

Jelly / Pyth、15バイト

.V1_`b;"1üÉÉ$

印刷できないものはSEソフトウェアによって破壊されるため、ここにhexdumpがあります。

00000000: 2e56 315f 6062 3b22 7f31 fcc9 c924 0b    .V1_`b;".1...$.

jelly f fileおよびでpyth fileそれぞれ実行します。

説明

最初に来るのはPythパートです。.V入力から始まる増分シーケンスで無限ループを実行します1。次に_、文字列化された(`)ループインデックス(b)を反転()し、暗黙的に出力します。これ;はループを終了"するためにあり、プログラムの残りの部分を文字列リテラルとして扱い、パーサーがそれを妨げないようにする必要があります。

Jelly部分については、まずプログラムの残りの部分をJellyコードページから翻訳して説明します。

¶1‘ṄṄ$¿

改行として機能し、効果的に呼び出されることはありませんリンクすることによって、プログラムの最初の部分を無視します。次に、条件として(2回印刷)を使用1するwhileループ(¿)を開始して実行し、ループ本体として値をṄṄ$インクリメント()します。


ちなみに、Pyth部分をに置き換えると、14バイトの有効なJelly / 05AB1E提出1[DR,>] 作成されますが、現在のinterpeterにはこれを防ぐバグが含まれています。


1
@JonathanAllanそうですね、それが私のテキストエディタで追加された末尾の改行です。
ドアノブ

11

Perl / JavaScript、87バイト

s=0;print=console.log;m=s;$_=s=s=s=m;while(++$_){print((m/s,$_+`
`+$_||/&&reverse.$/))}

Perl

s/0;print/console.log;m/s;$_=s/s/s/m;while(++$_){print((/s,$_+`
`+$_||/&&reverse.$/))}

私はJS / Perlのpolyglotsで多くを使用しましたメカニズムは、置換が使用して、ほとんどすべての区切り文字を受け入れることができるという事実乱用することで=、私は最初の無意味な置換(最初の交換に使用できる手段0;printconsole.log;mのフラグと/sでは$_現在、undef) 、その後、複数行モード()$_で置換sした結果に設定されます 今あると私は起動ループを、これはその後、インクリメント。次に、を呼び出して、一致する正規表現(空の文字列に一致するため)を渡し、演算子を使用して、改行と連結した逆を送信します(s/m0$_0while$_print||&&$_$/に事前に初期化されています"\n")。これは逆方向に無限にカウントされます。

JavaScript

s=0;print=console.log;m=s;$_=s=s=s=m;while(++$_){print((m/s,$_+`
`+$_||/&&reverse.$/))}

ここでは、Perl s///呼び出しでマスクされた変数の割り当てがたくさんあります。私は、変数を設定sし、mなど0の別名、console.logprint、設定され、いくつかの無意味な除算を実行$_する0と始まるwhileループ増分を$_呼び出して、print渡し0m/s、これはへの呼び出しを開始mPerlでの、標準的なJSでの部門として扱われる)と、当社のターゲット文字列($_+"\n"+$_)コンマ演算子を使用して、リストの最後の項目を返します。Perlコードの最後の部分(&&reverse.$/)を避けるのは、$_+"\n"+$_真実であるため、評価されないPerlコードの終わりを含むオブジェクトを||生成するために使用できるからRegExpです。

Perl 5およびNode 6を使用してテスト済み。


8

NodeJS / PHP、131 106バイト

@Titusのおかげで-25バイト

<!--
printf=(_,i)=>process.stdout.write(i+i),strrev=i=>i+" "//--><?
for($i=0;;)printf("%s ",strrev($i++));

ブラウザーJSの代わりにNodeJSを使用して、出力フォーマットと無限ループ処理を改善します。

JavaScriptをオンラインで
試すPHPをオンラインで試す

TIO出力は128KB後にカットオフされることに注意してください。


1
0から始まる102バイト:<!--←printf=(_,i)=>process.stdout.write(i),strrev=i=i>>1//--><?←for($i=0;;)printf("%s ",strrev($i++));。84バイト(ただし、アプローチの半分ではありません):<!--←for(i=1;;)process.stdout.write(i+" "+i+++" ")//--><?for(;;)echo strrev(++$i),_;または<!--←for(i=1;;)process.stdout.write((++i>>1)++" ")//--><?for(;;)echo strrev(++$i),_;
タイタス

@Titus i>>1数字を繰り返すにはいいアイデアですが、write(i)スペースを含めるように変更する必要がありましたwrite()。数字を受け入れないためです。そして、もう1バイト追加したタイプミス(strrev=i=i>>1-> strrev=i=>i>>1)がありました。やることが短くなってwrite(i+i)しまいましたstrrev=i=>i+" "
ジャスティンマリナー

7

V / 脳非難クラシック27、26のバイト

(()){[[({}())[]]]}é1òÙæ_æ

Hexdump:

00000000: 2828 2929 7b5b 5b28 7b7d 2829 295b 5d5d  (()){[[({}())[]]
00000010: 5d7d e931 f2d9 e65f 01e6                 ]}.1..._..

オンラインでお試しください!Vで(出力が見えるように終了するようにわずかに変更されます。TIOでは、Vはプログラムが終了した場合にのみ出力します)

オンラインでお試しください!Brain-flak Classicで

VコードはBrain-Flak Classicに影響を与えず、その逆も同様であるため、これはポリグロットの中で最も興味深いものではありません。自分自身で。

V説明:

é1              " Insert a '1'
  ò             "   Recursively:
   Ù            "   Duplicate this number
    æ_          "   Flip this line
      <C-a>     "   Increment the number on this line
           æ    "   Flip it back (the '_' is implicit because it's at the end of the program)

BFCの説明:

#Push a one onto the main stack
(())

#Forever:
{

  #Print twice:
  [[

    #Increment the top of the stack.
    #Evaluates to *i + 1*
    ({}())

    #Minus one
    []
  ]]

#Endwhile
}

3
私はあなたがこの言語を投稿することを知っていた言語を見るとすぐに。
ライリー

なぜ「Brain-flak Classic」なのですか?別のBrain-flakはありますか?
nmjcman101

@ nmjcman101 Brain-flak classicはBrain-flakのオリジナルバージョンです。違いはここでより詳細に説明されますが、私が選んだ理由は、明示的な出力を持っているためです。(無限の出力を許可)
DJMcMayhem

4

Retina / Python 2、61バイト

#{*M`
#*M`
"""

}`$
1
""";i=1
while 1:print str(i)[::-1];i+=1

網膜 | Python 2


に置き換えstr()てみましたが、どうやらRetinaコードを乱しました。理由がわかりませんか?
officialaimm

とにかくそれはできません。それが大きな数になり、適切に動作する場合、それはstrでなければなりません。そうでなければL、結果が得られます。しかし、実際に Retinaで機能します。何かを別の行に移動するように、あなたが言ったこと以上に変更したに違いありません。
mbomb007

3

R / オクターブ83 80 78 71バイト

ルイスメンドーのおかげで-3バイト

i=0;
while(1)
#{
print(c(i<-i+1,i))
#}
disp(flip(num2str(i)))
i+=1;
end

#{ }#Octaveブロックのコメントで#あるため、Rのコメントになります。Rインタープリターはwhileループの本体として次の行のみを参照し、OctaveインタープリターはOctaveコードにスキップします

Rパートは1から始まる数字のペアを出力し、オクターブ部分は0から始まる逆方向の数字を出力します。

(同じ言語の組み合わせであっても)私は完全にアウトゴルフされることを期待しています。最近、MatlabとRのコードを大量に書いているので、試してみようと思いました。

オンラインでお試しください!-オクターブリンク


一番上にある必要がありi=i+1ますか?
ザカリー

1
@ZacharyTは残念ながら、+=Rでは機能しません。そのため、そうでなければなりません。
ジュゼッペ

であるend必要?
BLT

1
@BLT、そう、それはオクターブのwhileループの終わりを示します。
ジュゼッペ

はい、ありがとう。とにかく終了しないので(while(1))、それらのバイトを保存できると考えていました。
BLT

3

Ruby / Python2: 68 64バイト

i=0
"#{loop{p i+=1,i}}"
exec('while 1:print str(i)[::-1];i+=1')

ルビーの視点

変数の単純な初期化:

i = 0

"#{}"文字列補間の構文です。代わりに式を実行するために使用します。

"#{loop{p i+=1,i}}"

pはの省略形ですputsloop無限ループを作成します。

次に問題がありexecますが、無限ループは定義により無限であるため、評価されません。execPythonコードで構文エラーを生成しないようにする必要がありました。

Pythonの視点

Pythonの観点からは、一般的ながありi=0ます。次に、Pythonには文字列補間の構文が異なるため、この行は単に破棄されます。次に、他の人が投稿したものに似た無限ループがあります。


3

Bash / Check50 28バイト

PythonからBashに切り替えて大量のバイトを保存してくれた@Doorknobに感謝

#>
#v
 #p<p<)#
seq 1 inf|rev

Bashに:

#>
#v
 #p<p<)#

これらは単なるコメントであり、無視されます。

seq 1 inf|rev

1から無限までのシーケンスを開始し、結果をにパイプしrevます。

チェックする:

#>

これはすぐに2Dモードに切り替わり、右に移動します。>IPの権利を指示しますが、効果はありません。行の先頭まで折り返して#再度ヒットすると、2Dモードから切り替わります。その後>、1Dモードでヒットし、0をスタックにプッシュします。1Dモードであるため、IPは次の行にラップします。

#v

#IPを2Dモードに再び切り替えて、v下に向けます。

 #p<p<)#

最初のものは#再び1Dモードに戻ります。pTOSを数値として出力しますが(ポップしません)、<改行を出力します。これは2回行われ、その後、数値はで増分され)ます。#2Dモードに再び切り替わります。そのため、IPは行頭に折り返され、ヒット#して1Dモードに切り替わります。


1
Bashは#コメントに使用し、「逆数」タスクを非常に簡単に実行できますseq 1 inf|rev
ドアノブ

Rubyのコードはi=1;loop{puts i.to_s.reverse;i+=1}1バイト短いです
dkudriavtsev

3

CJam /> <>、27 23バイト

"la,:naonao
"1{_sW%n)}h

CJamへ:

オンラインでお試しください!-出力を表示するには60秒の制限まで待つ必要がありますが、オフラインで動作することに注意してください。

"la,:naonao
"

これは、決して使用されない複数行の文字列リテラルを定義します。

 1{_sW%n)}h

2行目は次のようになります。

1     e# Push 1:               | 1 
{     e# Forever:              | 1
  _   e#   Duplicate:          | 1 1
  s   e#   Convert to string:  | 1 "1"
  W%  e#   Reverse:            | 1 "1"
  n   e#   Print with newline: | 1
  )   e#   Increment:          | 2
}h    e# End loop

> <>へ:

"

文字列リテラルを開始します。

 la,:naonao

文字列リテラルの内容。各文字コードは個別にスタックにプッシュされます。

"

IPはラップアラウンドして"再び到達し、文字列モードが終了します。

 la,

l スタックの長さを取得し、 a 10をプッシュして,分割します。これにより、スタックの長さ/ 10が得られます。

    :nao

: 複製、 nし、数字として印刷し、a10をプッシュしoて、文字コード(改行)として印刷します。

        nao

同じこと。番号に続いて改行を出力します。スタックの長さは再び10になりました(元の文字列リテラルのコンテンツはスタック上にあります)。

その後、IPは"再びラップアラウンドし、さらに10個の要素がプッシュされます。次回lは20を返すため、2が印刷されます。

2番目の行はIPに触れられません。


2

ローダ / C(gcc)、90バイト

main(){f(0);}f(a){a=1//1{[` $a`[::-1]];a++}while[]/*
;for(;;a++)printf("%d %d ",a,a);/**/}

ローダ:オンラインで試してみてください!

C:オンラインで試してみてください!

説明

これにより、 //は、ローダはint divisonであるが、Cでは行コメントでします。

両方の言語でmain(){}、メインプログラムを示し、両方ともf仮引数を使用して関数を呼び出します0

Rödaでは、a=1//1int除算を実行し、結果1をに割り当てaます。Cが見るa=1同じことをて同じことをしますが、その割り当ての後はすべてCに対するコメントです。そこから2つの言語が分岐します。

ローダ

while[]空の条件は真実です)の無限ループがあります。その内部で、` $a`整数aを文字列(先頭のスペースを含む)に変換した後、それを[::-1]逆にします(そして末尾のスペースを出力します)。次に、の値がa1増加します。

whileループの外側で/*は、関数の終わりの直前で複数行のコメントが開始および終了します。

C

行の残りを無視した後、プログラムは2行目に移動します。a=1ステートメントを終了する必要があるため、セミコロンから始めます。その後、反復変数を出力する単純なforループに遭遇します。aを各反復で2回ます。

forループの外側では、/*Rödaの終了*/コメントを無視するためだけにあります。


2

QBIC / QBasic 4.5、58バイト

do
p=p+1
if q then
'?`_f!p$|
else
?p,p,
end if
loop

これは、すべての小文字がQBICインタープリターによってリテラルQBasicコードと見なされ、そのためQBICのQBasicレイヤーに渡されるという事実を酷使します。両方の言語がこのコードを並べて表示する方法:

LOC         QBasic                    QBIC
-------------------------------------------------------
do                   Start an infinite loop
p=p+1                Increment p, starts off as 0
if q then    q = 0, goto ELSE         q = 1, execute IF
'?`_f!p$|    ' = comment, invalid     '?` is a 'code literal', passing PRINT to QBASIC
             syntax is ignored        followed by QBIC code to flip p cast as string.
else         q=0, execute             q=1, so ignored
?p,p,        PRINT p twice,
             separated by tab
end if               End of the branching logic
loop                 Wrap around for the next pass

2

laserLANG / > <>、163バイト

!\0 \
/:+1/!   ]oo\
\:a( ?\:a%$a ,!
/r[-1l//" ,"/
/!n-%1:\?(1l
 \ --\/ <<---\
/----/'
\----  v
/>>--\#>---->/
\     /
/----<
\  \
/ -<< \
 /<< \
 "
">=>= /
\>=>=/

初めてゴルフをするので、おそらくそれよりも少し大きいです。> <>を使用したかったのですが、2、3人が既に2番目のシーケンスを作成するために使用していたため、最初のシーケンスの作成を試してみることにしました。

> <>オンラインでお試しください!
laserLANGの場合、試してみるにはオフラインインタープリターが必要です。それは見つけることができるここに

laserLANG

!\
 \ --\/ <<---\
/----/'
\----  v
/>>--\#>---->/
\     /
/----<
\  \
/ -<< \
 /<< \
 "
">=>= /
\>=>=/

!完全に無視される実行が開始されます。その後、に到達し、\完全に無視するいくつかのキャラクターを過ぎて移動を開始します。最後に別のものに到達\し、楽しみが始まります。私は基本的に「Hello、World!」の背後にあるアイデアを取り入れました。ループして、できるだけ圧縮しました。プログラムカウンターがそれぞれ左/右に移動している場合、laserLANGがメモリカウンターをデクリメント/インクリメントしようとしているだけであるという事実に対処するのは、ちょっとした挑戦でした。私が考えもしなかったいくつかのトリックを行うことで、ここでほとんどのバイトを節約できると思います。

> <>

!\0 \
/:+1/!   ]oo\
\:a( ?\:a%$a ,!
/r[-1l//" ,"/
/!n-%1:\?(1l

実行が開始さ!れると、がスキップされ\ます。その後、laserLANGコードが存在しないかのように続行します。> <> がフロート除算のみをサポートしていることに気づかなかったので、短く単純な切り捨ては最初は少し混乱しました。


2

Befunge-98 / > <>、32バイト

\r.#%a/# :_::p#+a#1,#
>l::naonao

><>答えがいくつあるかを見る前にこれを書きました。背景:いくつかの背景:\> <>の方向を変更する演算子です。この場合は押し下げますが、Befungeではスタックの上位2つのアイテムを交換します。Befungeコードは次のようになります。

\r.#%a/# :_::p#+a#1,#

オンラインでお試しください!

改行で区切られた逆方向の数値を出力します。Befungeは、各数字の後にスペースを自動的に出力するため、各数字はスペースで区切られます。最後の桁を繰り返し取得し、それを印刷し、0になるまで数値を10で除算します。その後、インクリメントして繰り返します。

> <>コードはすぐに2行目になります。

>l::naonao

オンラインでお試しください!

そして非常に簡単です。スタックの長さを取得し、改行で2回印刷し、次のループのために長さのコピーをスタックに残します。


1

Ruby / Stacked、37バイト

0#/0[1+:tostr rev out]
loop{p p$.+=1}

オンラインでお試しください!

これは1 1 2 2... Rubyおよび1 2 3 ... 01 11 21...Stacked で印刷されます。

説明

Rubyの場合:

0#/0[1+:tostr rev out]
loop{p p$.+=1}

コメントを削除すると、次のようになります。

0
loop{p p$.+=1}

ここで関連する唯一の行は最後です。p引数を返すのでp p、引数を2回出力します。$.で始まる0ので、$.+=1increments $.、増加した値を返します。したがって、これは各番号を12回から印刷します。

積み上げ:

0#/0[1+:tostr rev out]
loop{p p$.+=1}

これは、次のトークンと同等です。

0 #/ 0 [ 1 + : tostr rev out ] loop { p p $ . + = 1 }

最初の2つは関係ありません(基本的0に、reduce f Unctionへの変換)。次に、0スタックにプッシュされます。その後、関数[1+:tostr rev out]はスタックにプッシュされます。loopこの関数をポップし、無限に実行します。

関数の内部は、スタックの先頭(1+)をインクリメントし、複製(:)、文字列に変換(tostr)、反転(rev)、出力(out)します。このプロセスは無限に繰り返されます。ループは無限であるため、そのトークンの後に来るものはすべて、インタープリターによって本質的に無視されます。


1

> <> / Jelly、37バイト(Jellyのコードページで25)

01+:nao:nao!
DU;⁷Ṙ€
®‘©Çß

> <>オンラインでお試しください!

オンラインでゼリーをお試しください!

> <>シーケンスを無限に2回出力し、Jellyは逆方向にカウントします。

> <>は一番上の行にのみ関係します:

そして、ラインフィードでいくつかのバイトを保存してくれた@ Challenger5に感謝します

01+:nao:nao!                           Stack at: 1st run   2nd run ...
0                 Push a 0             0         -
 1                Push a 1             0,1       1,1   
  +               Pop 2, add them      1         2 
   :              Duplicate top item   1, 1      2, 2
    n             Pop top, show as num 1         2
     a            Push the number 10   1, 10     2, 10
      o           Pop and show 10 as an ACII char (ie '\lf')
                                       1         2
         :nao     And again, for repetition
             !    ><> wraps around; this skips pushing a 0 again.

Jellyはコードを下から上に実行します。最後の2行のみが関連します。

®‘©Çß       main link, keeps track of the current number

®           Get a number from the register (0 on first run)
 ‘          Increment that by 1
  ©         Store in register
   Ç        Call helper (printer) link
    ß       Call this link again

DU;⁷Ṙ€      Printer

            (Say we are at number 21)
D           Break into digits         [2, 1]
 U          Reverse array             [1, 2]
  ;⁷        Append a line break       [1, 2, \n]
    Ṙ€      Print each char in array

@LuisMendoこの><>コードで使用される文字には、Jellyコードページに対応するASCIIコードポイントがあります。このコードページのビジネスについてはあまり知りませんが、これはコードを表すのに使用されるのと同じバイトになると思います。下の行の文字は無視される><>ため、コードページ間でまったく同じかどうかは関係ありません。バイトカウントは><>TIOリンクから取得されました。
-steenbergh

これらは、> <>にセパレータなしで印刷されていませんか?
エソランジングフルーツ

@ Challenger5あなたは正しいです。一定。
steenbergh

魚にはキャラクタータイプがありません。","ASCII値を,スタックにプッシュするだけなので、a代わりに改行区切り文字として使用できます。
エソランジングフルーツ

> <>説明の最初の行にコンマがまだあるようです。
エソランジングフルーツ

1

C(gcc) / PHP102 86 80バイト

#//\
for(;;)echo strrev(++$i).'
int main(i){for(;;i++)printf("%d %d ",i,i);}//';

Cで二重シーケンスを出力し、PHPで逆シーケンスを出力します。

Cで試してみてください!

PHPで試してみてください!

説明

C

Cでは、#フォームプリプロセッサのもの。私はCについてはあまり知りませんが、このようなものに空の行がある場合は文句を言いません。//フォーム行コメント。\行末のA は、基本的に改行を「エスケープ」し、2行を1行として処理します。これは行コメントでも機能するため、2行目はCのコメントとして表示されます。3行目では、単純なforループで数値を出力します。その後、単にコメントがあります。

PHP

PHPでは#、行コメントを形成するため、最初の行は完全に無視されます。2行目は、forループで反転された数値を出力し、それらを\nint main(i){for(;;i++)printf("%d %d ",i,i);}//(文字列でラップされたCコード)で区切ります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.