タグ付けされた質問 「interpreter」

さまざまな言語や形式の通訳を書く作業。

17
HQ9 +インタープリターの作成
このゴルフの目的は、プログラミング言語HQ9 +のインタープリターを作成すること です。このプログラミング言語には4つのコマンドがあります。 H-「Hello、world!」を印刷します Q-プログラムのソースコードを出力します 9-曲「99本のビール」の歌詞を印刷します + -アキュムレータをインクリメントします ルール: アキュムレーターが定義されていないため、コマンド+ プログラムは入力を要求する必要があります(この入力はソースコードになります)。または、ソースコードがファイルから読み取られます。 「99本のビール」の歌詞をファイルに入れたり、ファイルからテキストを読んだりすることはできません。 GZipやBZipなどの圧縮アルゴリズムを使用して曲のテキストを圧縮することはできません。独自の圧縮アルゴリズムを作成する必要があります。これは複雑なアルゴリズムである必要はありませんが、可能な限りテキストを圧縮してみてください(覚えておいてください:これはコードゴルフで、バイト数が最も少ないコードが勝ちます) ソースコードにH、Q、9または+以外の文字が含まれている場合、コマンドを実行する前に「ソースコードに無効な文字が含まれています」と出力してください。これは、ソースコードがH1たとえば、出力Hello, world!する前に出力しないことを意味しますSource code contains invalid characters。いいえ、すぐに出力しますSource code contains invalid characters インタープリターが大文字と小文字の両方を受け入れる場合、文字数は-8になります がんばろう!

3
私と一緒にゴルフ言語を構築する
多くのPPCGユーザーが、チャットとサンドボックスの両方で、特にMartin Ender、AdmBorkBork、Emigna、およびuser202729でこの課題の作成を支援しました。 私たちのコミュニティは、ゴルフのために特別に設計された一連の言語、つまり「ゴルフ言語」を作成する必要があると考えています。このような言語は、かつては見栄えがよく、今ではぎこちないGolfScriptから、JellyやHuskなどの洗練された簡潔な言語に進化しました。ご覧のとおり、これらの言語は、一連のタスクでますます短くなっています。ですから、ここの周りのゴルフの言語に関する明白な専門家として、私たちは競争する勇気がある他のすべての言語を打ち負かすために一緒に言語を設計するべきです。ビューグルの紹介! ラッパ:頭字語からBuGoL:Bu ilt Go lfing L anguage。 この課題の仕組み 導入部で私がほのめかしているものが得られなかった場合、この課題は回答連鎖課題であり、それぞれが新しいゴルフ言語の通訳者に何かを提供し、各回答でPPCGで競争する能力を向上させます。 言語仕様/通訳の基礎からなる最初の回答を投稿しますが、他のすべての回答はそれから継続します。新規提出により、次のものが提供されます。 言語の仕様の変更 最新の通訳者で、変更点に正確に対応しているもの 言語の更新されたスコア(詳細は少し) 次の3つの方法のいずれかで仕様を変更できます。 単一のコマンドを追加できます 2つの新しいコマンドを追加できます 1つの既存のコマンドの動作を編集できます 新しいインタープリターに関しては、Pythonで書かれた最新バージョンを使用する必要があります。ゴルフする必要はありません。以前に追加したコマンドはすべて、最新のインタープリターと最新のコマンド(追加したコマンド)でテスト可能でなければなりません。また、コメントや文字列リテラルなどのように、インタープリターを更新するときは、攻撃的な言語を使用しないでください。 追加されたコマンドは、あなたが望むことをするかもしれません。唯一の要件は次のとおりです。 攻撃的な出力を生成しません 別のコマンドとは異なります サンプルの課題の1つが完了するのを妨げません これらとは別に、必要に応じて特定または一般的なものにすることができます。また、任意の文字を使用できます。追加したコマンドが「新しいコマンド」であるかどうかわからない場合は、コメントでお気軽にお問い合わせください。 言語のスコア あなたは、すべての新しい提出物に言語のスコアを含める必要があることに気づいたかもしれません。そのスコアは、このチャレンジが永遠に続くことを防ぐものであり、次のように定義されます。 現在のスコアは、言語が20以下のタスクを完了するために必要なバイトカウントの合計です。 各タスクには、標準I / Oルールが適用され、標準の抜け穴が適用されます。 20のタスク: "こんにちは世界!" –文字列を出力するHello, World! 1、2、Fizz、4、Buzz – 1から100までの各整数を別々の行に出力します。3のFizz倍数が、5のBuzz倍数が、両方の倍数が、FizzBuzz ソースコードに数字を含めずに数字2014を生成する – 外部変数やランダムシードにアクセスせずに、ソースコードの文字を使用せずに数字2014を出力します0123456789 難読化されたHello World – Hello, World!次のセットの少なくとも2つの文字を使用せずに文字列を出力します:hlwd、eor01および27(大文字と小文字を区別しない) お気に入りのプログラミング言語にハッピーバースデーを歌う –選択した言語で、次を出力します。 Happy Birthday …

11
印刷、増分、減分、エイリアス-Prindealの解釈
Prindeal(顕著PRIN-ディー-ALは)新しいある難解:4つのつのみコマンド有するプログラミング言語PR INTを、で crement、デ crement、そしてら IAS。4つのコマンドを巧みに組み合わせることにより、Prindealで複雑な数学演算を最小限に抑えることができます。 このゴルフのチャレンジの課題は、Prindealコードを実行できる最短のプログラムを作成することです。 仕様は長いですが、できる限り明確にしようとしました。Prindealを学習するための努力をすれば、非常にエレガントであることがわかります。 Prindealの解釈 前処理 Prindealプログラムを解釈する前に、これらのことを次の順序で削除する必要があります。 #記号の後にある行の最後までのすべてと、#それ自体。(これらはコメントです。) 任意の行の末尾の空白。 完全に空の行。 たとえば、Prindealプログラム p cat #The next line has 7 trailing spaces. p dog #p mouse 前処理されます p cat p dog ここからは、この前処理ステップが完了したと仮定します。 変数 変数の使用方法を示す前に、変数をすばやく定義する必要があります。 変数(および変数への参照)は、Prindealコマンドの引数に渡されるものです。変数は常にグローバルであるため、変数の変更は、それらがどこで発生しても、どこにでも反映されます。 各変数は、負でない任意精度の整数(0、1、2、3、...)を保持します。変数は事前に初期化する必要はありません-変数は、最初に使用または呼び出されるときに常に値0で始まります。 変数名は、数字[a-zA-Z_][0-9a-zA-Z_]*と正規表現で始まらない、英数字とアンダースコアの空でない文字列です。これらは大文字と小文字が区別されるためspiny_lumpsuck3r、Spiny_lumpsuck3r異なる変数です。 実行 Prindealは命令型プログラミング言語です。Prindealプログラムが実行されると、ステートメントが上から下の順に実行され、プログラムが終了します。 Prindealプログラムのインデントされていない行はすべて、引数を取る場合と受け取らない場合がある単一のコマンドの実行を伴うステートメントです。 インデントされた行は、エイリアスコマンドの後にのみ発生します。具体的には、すべてのエイリアスコマンドの後に、単一のスペースでインデントされた正確に3行が発生し 、その一部と見なされます。したがって、別名ステートメントは実際には4行の長さです。(1行にすることもできますが、4行は読みやすいだけです。) 非エイリアスステートメント aliasを除き、Prindealプログラムのすべてのステートメントの形式は次のとおりです。 [command name] [argument 1] [argument …

30
インタラクティブなDeadfishインタープリターを作成する
Deadfishは、4つのコマンドを備えたジョーク「プログラミング言語」です。Esolangページは少し矛盾しており、そのページのインタープリターはまったく同じように機能しないため、次のバリエーションを実装する必要があります。 仕様 少なくとも 16ビットのサイズのアキュムレータがあり、それ以上は許可されますが、それ以下は許可されません。負の数をサポートする必要はありません。アキュムレーターは0、プログラムの開始時にあります。 次の2セットの4つのコマンドがあり、プログラムは両方を同時にサポートする必要があります。 標準Deadfish│XKCDバリアント│意味 ─────────────────────┼──────────────────┼─────────── ────────────────────────────── i│x│累積アキュムレーター d│d│アキュムレーターを減少させる s│k│平方(acc = acc * acc) o│c│数値としての出力アキュムレーター コマンドの実行後、アキュムレータがまたはのいずれ-1かである256場合、アキュムレータをゼロにリセットする必要があります。これは通常のラップアラウンドではないことに注意してください。たとえば、アキュムレータが20であり、sコマンドが実行された場合、アキュムレータは400その後になります。同様に、アキュムレータが257あり、dコマンドが実行されると、アキュムレータはになり0ます。 これらのコマンドのいずれでもない入力は無視する必要があります。 テストプログラム xiskso 出力する必要があります 0 xiskisc 出力する必要があります 289 I / O プログラムにプロンプ​​トが表示されます>>。プロンプトは、新しい行の先頭にある必要があります。次に、ユーザー入力の行を読み取り、指定されたコマンドを左から右に実行します。数字を出力するときは、数字を区切る必要があります。すなわち、12 34大丈夫、12,34大丈夫、 12 34 大丈夫ですが、そうで1234はありません。 プログラムは、少なくともこれにEOF達するまで、ループでこれを実行し続ける必要があります。 セッションの例: >> xiskso 0 >> xiskisc 289 >> ddddo ddddo 285 281 >> ddddo ddddo 277 …

10
///を解釈する(「スラッシュ」と発音)
難解な言語のゴルフを十分に得ることができないので、できますか? /// —発音のスラッシュ ——Perlのs///名声の正規表現置換機能に基づいた楽しい小さな言語です。スラッシュ/とバックスラッシュの2つの特殊文字のみが含まれています\。esolangs wikiで完全な記事を見つけることができますが、以下の言語の説明といくつかの例を再現します。 つまり、/pattern/repl/restプログラムで識別し、可能な限り何度も置換を行うことで機能します。いいえ文字は除いて特別ではない/と\:/画定パターンや交換プログラムで、しばらくは\リテラルを挿入することを可能にする/か、\あなたのコードに文字を。特に、これらは正規表現ではなく、単なる文字列の置換です。 あなたの課題は、できるだけ少ない文字で、STDINを読み取るプログラムまたは文字列引数を取る関数として、///言語のインタープリターを作成することです。 ///自体以外の任意の言語を使用できます。///;を解釈するライブラリは使用できません。ただし、正規表現、正規表現ライブラリ、または文字列一致ライブラリを使用できます。 実行 4つの状態、print、pattern、replacement、およびsubstitutionがあります。置換を除くすべての状態で: プログラムが空の場合、実行は停止します。 それ以外の場合、最初の文字がの場合、\次の文字(存在する場合)で何かを実行し、プログラムから両方を削除します。 それ以外の場合、最初の文字がの場合、/それを削除し、次の状態に変更します。 それ以外の場合は、最初の文字で何かをして、プログラムから削除します。 繰り返す。 状態は、print、pattern、replacement、およびsubstitutionを順に循環します。 では、印刷モード、文字手段の出力「何かを行います」。 では、パターンモードで、「何かをする」という意味は、現在のパターンに文字を追加します。 で代替モードで、「何かをする」という意味では、現在の交換に文字を追加します。 で置換モードでは、ルールの異なるセットに従ってください。置換が不可能になるまで、現在のパターンの最初の出現をプログラムの現在の置換で繰り返し置換します。その時点で、パターンと置換をクリアし、印刷モードに戻ります。 プログラム/foo/foobar/foo foo fooでは、次のことが起こります。 /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... これは永久にループし、置換モードを終了しません。同様に、パターンが空の場合、プログラムの先頭にある最初の空の文字列は常に一致するため、置換モードは永久にループし、停止することはありません。 例 no 出力:no。 / world! world!/Hello,/ world! world! world! 出力:Hello, …

11
Befingeの停止問題を解決する
単純な2D言語を定義してみましょう。信じられないほど元の名前befingeを与えます。Befingeには5つの指示があります。 <>^v、ほとんどの2Dエソランのように、それぞれの方向に命令ポインターをリダイレクトします。 . ノーオペレーションです。 命令ポインタは、左上隅から右に向かって始まります。命令ポインターが端に達すると、プログラムは停止します。すべてのBefingeプログラムは明らかに停止するか、何もしない無限ループに入ります。以下に2つの例を示します。 停止: >.v ..< ノンハルティング: >....v ..v..< ..>v.. ^..<.. 停止の問題はチューリング完全言語では解決できませんが、この問題では解決できます。タスクは、befingeプログラムを表す文字列を入力として受け取り、停止するかどうかに応じてtrueまたはfalseの値を返すプログラム(または関数)を作成することです。 入力はこれらの文字のみで構成され、スペースを埋めて長方形を形成すると想定できます。 指示には5文字の任意のセットを使用できます(例:)adws 。 テストケース 停止: . v> >^ ....v.... ....>...v .^..<.... .......v< .......v. ....^..<. v<>v>v^ >v^>^>v <>>^v<v v^<>v^< ノンハルティング: >..v ^..< >v< v<. >v. v<. >.^ >.>.>.v .><.<.< これはcode-golfであるため、最短のプログラム(バイト単位)が優先されます。

6
助けて!電卓が誤動作します!
前書き 電卓の動作がおかしい。入力するときにが8表示されることがあり2ます。そして時々私がタイプするとき6それは表示する+。いくつかのボタンが混同されています! 誰が私がどちらを決定するのを手伝ってもらえますか? チャレンジ: 入力:間違った方程式のリスト、正しい結果。 出力:交換される2つのボタン。 例: 入力は次のとおりです。 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 そのために期待される出力は、次のとおり2と*。 どうして?2と*を入れ替えると、すべての方程式が正しいからです。 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 チャレンジルール: 入力は任意の合理的な形式にすることができます。スペースで区切られた単一の文字列にすることができます。文字列リストまたは-array。方程式のリストと正しい結果の別のリスト。あなたの電話。使用した入力形式を明記してください! 注:これは-5--15、-5- -15またはとしてテストケースを入力できることも意味します-5 …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

8
すべての停止プログラムを出力します(並列インタープリターを作成します)
この課題の目標は、(最終的に)選択した言語で停止可能なすべてのプログラムを出力することです。最初はこれは不可能に思えるかもしれませんが、実行順序を非常に慎重に選択することでこれを実現できます。 以下は、これを説明するためのASCIIダイアグラムです。列は、考えられるすべてのプログラムの番号付けを表します(各プログラムは、有限のアルファベットからの有限数のシンボルです)。各行は、そのプログラムの実行における特異なステップを表します。Xその時間ステップにおいてそのプログラムによって実行される実行を表します。 step# p1 p2 p3 p4 p5 p6 1 X X X X X X 2 X X X X X 3 X X X X 4 X X X X 5 X X X 6 X X 7 X X 8 X X 9 X X ∞ X …

11
ミンスキーレジスターマシンのシミュレーション(I)
多くの形式がありますので、他の情報源が役立つと思うかもしれませんが、それらが必要でないように十分明確に指定したいと思います。 RMは、有限状態マシンと有限数の名前付きレジスタで構成され、各レジスタには非負の整数が保持されます。テキスト入力を簡単にするために、このタスクでは状態にも名前を付ける必要があります。 状態には3つのタイプがあります。増分と減分です。どちらも特定のレジスタを参照します。そして終了します。インクリメント状態はレジスタをインクリメントし、制御を1つの後続に渡します。デクリメント状態には2つの後続操作があります。レジスタがゼロ以外の場合、デクリメントして最初の後続操作に制御を渡します。それ以外の場合(つまり、レジスターがゼロ)、制御を2番目の後続に単純に渡します。 プログラミング言語としての「ナイスネス」の場合、終了状態はハードコードされた文字列を使用して印刷します(したがって、例外終了を示すことができます)。 入力は標準入力からです。入力形式は、状態ごとに1行で構成され、その後に初期レジスタの内容が続きます。最初の行は初期状態です。状態ラインのBNFは次のとおりです。 line ::= inc_line | dec_line inc_line ::= label ' : ' reg_name ' + ' state_name dec_line ::= label ' : ' reg_name ' - ' state_name ' ' state_name state_name ::= label | '"' message '"' label ::= identifier reg_name ::= identifier 識別子とメッセージの定義にはある程度の柔軟性があります。あなたのプログラムがなければなりません識別子として非空の英数字の文字列を受け入れ、それが可能あなたが好む場合(例えばアンダースコアと言語のサポート識別子あればそれと仕事へのあなたのために簡単です)、より一般的な文字列を受け入れます。同様に、メッセージでは、英数字とスペースの空でない文字列を受け入れる必要がありますが、必要に応じて、エスケープされた改行と二重引用符文字を許可するより複雑な文字列を受け入れることができます。 入力の最終行は、初期レジスタ値を提供し、空白で区切られたidentifier …

7
0815インタープリターを書く
作成者のWebサイトのインタープリターがエラー404を返すことを除いて、私は0815の概念が好きです。だから私は皆さんに助けを求めることにしました! 基礎 0815は、3つのレジスタと1つのキューに基づいています。レジスタにはX、Y、Zという名前が付けられ、Xは書き込み専用、Zは読み取り専用、Yは直接アクセスできない「ヘルパー」レジスタです。すべてのレジスタは、0に設定されて開始されます。すべての数値は16進数です。 説明書 注:一部の命令は、パラメーターの}:hello:場所のようにフォーマットされ:hello:たパラメーターを使用します。その他の注意:命令の説明のいくつかは不明瞭なので、私はそれらにいくつかの自由を取りました。(ここに元の指示) ~ パラメータが必須であることを意味します ----------|---|-------------------------------------------- ~Move | < | <:8: will write 8 to X (parameter required) ----------|---|-------------------------------------------- Swap | x | Swap X and Y ----------|---|-------------------------------------------- ~Label | } | }:hello: makes a label called 'hello' ----------|---|-------------------------------------------- Input | | | Set X to an integer …

15
Transpile WordMath
私たちは皆、このようなオンラインの「数学hax」を見てきました。 Think of a number, divide by 2, multiply by 0, add 8. そして、魔法によって、誰もが8番になります! 言語 「WordMath」と呼ばれる上記のテキストの構文を使用するプログラミング言語を定義しましょう。WordMathスクリプトは、次のテンプレートに従います。 Think of a number, <commandlist>. これは基本的に、最初のアキュムレーターとして(STDINからの入力として)数値を取得し、その数値に対してすべてのコマンドを実行し、結果を出力します。 コマンドは区切り文字,(コンマ+スペース)で区切られます。有効なコマンドは次のとおりです(#負でない整数を表すことに注意してください)。 add #/ subtract #-アキュムレーターから値を加算/減算します。 divide by #/ multiply by #- floordiv指定された値によって乗算/アキュムレータ。 subtract from #-に似てsubtractいますが、acc = # - acc代わりにacc = acc - # repeat-最後のコマンドを再度実行してください。これを最初のコマンドにすることはできませんが、複数の連続した繰り返しをサポートする必要があります。 チャレンジ あなたの仕事は、入力として有効なWordMathスクリプトを取り、プログラムや関数を作成することです transpilesあなたのコードが入っている同じ言語で-有効なフルプログラムにそれを。 たとえば、私のコードがPython …

15
ユニコーンインタープリターを作成する
最近、私はタイプミスをし、ユニコードの代わりにユニコーンを書き、普通の人がすることをし、それからエソランを作りました。この課題では、Unicornインタープリターを作成します。 Unicornプログラムは非常に長いため、これを補うために短いインタープリターを作成する必要があります。 例 これらは、コンパイルされた結果であり、プログラムが出力する実際の解釈結果ではありません 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 1 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 …

7
通訳通訳
この質問に対するジョージ・エジソンのコメントに基づいて、最小の自己解釈通訳を書きます。 選択した言語を使用できます。 空の言語はカウントされません。プログラムの長さは少なくとも2文字でなければなりません。 プログラムは言語全体を解釈する必要はなく、言語機能のチューリング完全サブセット(インタープリターを含む)のみを解釈する必要があります。 クインはカウントされません。 言語の組み込みeval関数または同等の関数を使用しないでください。同じことがのために行くapplyなど、

18
3varインタープリターを作成してください!
3varでの変異体であるdeadfish Rは、結果変数として使用されている間、アキュムレータA、B及びR. A及びBであると呼ばれる3つの変数を使用します。 このコードゴルフの課題では、この言語の簡略版のインタープリターを作成する必要があります。 必要なコマンド: i Increments A d Decrements A s Squares A p Prints A P Prints the ASCII character of A > Sets A to R a Increments B k Decrements B m Squares B o Prints B O Prints the ASCII character of B < Sets …

25
猶予期間を考慮した編集のカウント
SEで投稿を編集すると、5分間の猶予期間内にさらに編集された内容がマージされます。投稿を編集する回数のリストが与えられたら、猶予期間内ではない編集をカウントします。 数分で編集するとします[0,3,4,7,9,10,11,12]。これにより、3回の編集が行われ[0,7,12]、残りは猶予期間中に行われます。 0: [3,4] 7: [9,10,11] 12: [] 最初の編集は0分です。3分と4分での編集は5分の猶予期間内であるため、カウントしません。 2番目の編集は7分です。9、10、11分での編集は猶予期間内です。 12分目の3番目の編集は、7分から始まる5分間の猶予期間の端を過ぎています。 したがって、出力は3です。 分単位の時間のリストは、増加する整数のリストになります。最初の投稿では、最初の番号は常に0になります。これは編集としてカウントされます。 テストケース: [0] [0,3,5,7] [0,3,4,7,9,10,11,12] [0,30,120] [0,4,8,12,16] [0,4,8,12,16,20] [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19] [0,5,10,15,20] [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] [0,1,4,5,9,11,12,14,16,18,23,24,26,28,29,30] 出力: 1 2 3 3 3 3 4 5 5 6 コピーを簡単にするために、入力、出力、および入出力のペアを以下に示します。 [[0], [0, 3, 5, 7], [0, 3, 4, 7, 9, 10, 11, 12], [0, …

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