タグ付けされた質問 「code-challenge」

コードチャレンジは、他のスコアリングタグ(コードゴルフなど)ではカバーされない客観的な勝ち基準でプログラミングパズルを解くクリエイティブな方法の競争です。

28
ファイを計算する(パイではない)
いいえ、私は意味しないϕ = 1.618...とπ = 3.14159...。私は機能を意味します。 φ(x)は、にx比較的素数であるかそれ以下の整数の数ですx。 π(x)は、以下の素数の数ですx。 「not pi」がπ̅(x)であり、それ以下の複合体の数になるように定義するとしましょうx。 仕事 厳密に正の整数を指定してx、φ(π̅(x))を計算しますます。スコアリングはバイト単位です。 例 各行は、入力(1〜100を含む)と、スペースで区切られた対応する出力で構成されます。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

14
多言語のHello World
仕事 複数のプログラミング言語で有効なプログラムまたは関数を作成し、異なる言語としてコンパイル/解釈すると、「Hello、World!」と出力されます。別の自然言語で。 たとえば、有効なソリューションはHello World!、コンパイルしてCとして実行すると(英語)、Hallo Welt!C ++としてコンパイルして実行すると(ドイツ語)、你好世界!Pythonとして実行すると(中国語)を出力します。 ルール 回答の有効性に関するあいまいさを避けるために、いくつかの言語で使用できるフレーズのバージョンのリストを以下に示します。このリストは、Google Translateがコミュニティで検証したフレーズの翻訳を持っている言語のフレーズで構成されています(この記事の執筆時点)。 これらの翻訳の正確性については議論の余地がありますが、この課題で使用されるものです。印刷される文字列は、以下の形式に正確に従う必要があります(先頭または末尾の空白を除く)。 Afrikaans: Hello Wêreld! Albanian: Përshendetje Botë! Amharic: ሰላም ልዑል! Arabic: مرحبا بالعالم! Armenian: Բարեւ աշխարհ! Basque: Kaixo Mundua! Belarussian: Прывітанне Сусвет! Bengali: ওহে বিশ্ব! Bulgarian: Здравей свят! Catalan: Hola món! Chichewa: Moni Dziko Lapansi! Chinese: 你好世界! Croatian: Pozdrav svijete! Czech: …

27
2016 Time Capsule String:あなたの言語はどの程度多用途ですか?
約1年前の2015年12月31日、私は次のことを考えていました。 タイムカプセル文字列を作成する必要があります。誰もが1つのキャラクターを追加することができ、次の新しい年は、誰がその時点で存在するエソランですべてのキャラクターから最高のプログラムを作成できるかがわかります。 ドアノブは優雅に文字を収集からPPCGのコミュニティと年のために安全にそれらを保ちました。 なんと74人が参加したので、74 種類の印刷可能なASCII文字を使って遊ぶことができます! 2016年のタイムカプセル文字列の74文字を、送信された順に示します。 H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{% 以下は、ASCII順の2016年のタイムカプセル文字列の74文字です(先頭のスペースに注意してください)。 !!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~ 取り組むことはそれほど多くありませんが、ここではチャレンジが好きです。 挑戦 タイムカプセル文字列でどの言語が「最適」かを判断するために、74個のタイムカプセル文字のサブセットを使用する必要がある難易度が増加する6つの(201 6の)チャレンジがあります。 6つの明確な課題があると、より多くの言語が競争できるようになりますが、すべての言語に答えて高得点を獲得できるのは最高の言語のみです。 得点: 各チャレンジは、使用されているキャラクターの数に応じて0から74までのスコアが付けられます。 スコアが高いほど優れています。 言語がチャレンジを完了できない場合、そのチャレンジのスコアは0です。 チャレンジの空でないサブセットはすべて完了できます。 最終スコアは、6つの課題すべてのスコアの合計です。 可能な最高の最終スコアは6×74または444です。 課題 1.実行する 言語のコードがそもそも実行できないと、何もできなくなります。 コンパイル時または実行時エラーなしで実行/実行される、可能な限り最長の完全なプログラムを作成します(74個のタイムカプセル文字のみを使用してください)。 プログラムが何をするかは関係ありません。入出力があるか無限ループに入るかは関係ありません。エラーなしで実行されることだけが重要です。(警告は問題ありません。また、不適切なユーザー入力によるエラーも同様です。) コメントが許可されているため、これは #H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{% Pythonでスコア74。 (これがあなたの言語が完了することができる唯一の挑戦であるならば、答えることを恐れてはいけませんが、多くの票も期待しないでください。) スコア=プログラムの長さ(プログラムが長いほど良い) 2. I / O 入力または出力の形式を持たない言語は、実行できない言語とほとんど同じくらい役に立たない。 与えられた印刷可能なASCIIの文字!(0x33の)の}前と後(0x7D)を含め、出力可能なASCII文字を。 出力は、長さ2の文字列またはリスト、またはスペースまたは改行で区切られた文字にすることができます。 たとえば、入力が}出力の場合、|~or ["|", "~"]または| ~orになり|\n~ます。 同様に、 "はの出力で!、ACはの出力ですB。 スコア= 74-プログラムの長さ(プログラムは短いほど良い) 3.分岐可能性 多くの場合、条件はチューリング完全性の要件であり、これは多くの場合、有用な言語の要件です。 …

30
プログラミング言語のアルファベット
私たちの仕事は、(英語の)アルファベットの各文字について、その文字で始まる名前の言語でアルファベットを印刷するプログラムを書くことです。 入力: なし 出力: abcdefghijklmnopqrstuvwxyz 大文字と末尾の改行オプション ルール: 採点メトリックは、プログラミング言語の長さである名前、プラスコードの長さ。したがって、Cは1の「ペナルティ」と評価され、GolfScriptは10のペナルティと評価されます。 回答ごとに1つの言語/実装。複数の回答が推奨されます。 プログラミング言語は、2011年4月18日にこの投稿を書く前に存在していたはずです。 プログラミング言語の名前の最初の文字が英語の文字でない場合、強制的に英語にしないでください。それは別の手紙として扱われます(より少ない競争を意味する)。 すべての英文が解決するまで、回答は受け付けられません。 現在のランキング: PL:5 Bの灰:20 C:35 dは C:19 E:27 Fの ISH:20 Gオルフスクリプト:18 Hアスケル:28 I O:33 J:15 K:13 L ogo:30 M atlab:19 Nイム:34 O wl:14 P erl:14 Q基本:35 R uby:17 S MBF:14 T cl:34 U nixシェル:31 V im:12 Wの AKE:37 X …

18
ルーベゴールドバーグハローワールド
このゴルフでは、複数の言語を使用する必要があります。 タスク ルーブ・ゴールドバーグ・マシンは、非常に単純なタスクを実行するために複雑なステップの膨大な数を取るからくりです。このゴルフの目標は、出力することRube Goldbergですが、直接ではありません。 この機械 「マシン」とは、一度実行されると、Rube Goldberg実行時に出力される別の言語の別のソースコードを提供するソースコードです。とった? 言い換えると、初期コードは別のコードを提供する必要があり、他のコードは出力する必要がありますRube Goldberg。両方のコードは異なる言語で作成する必要があります。 それを行う唯一の楽しい方法のようなボーナス コードが出力するコードを出力する場合、ボーナスがありますRube Goldberg。 注:任意の種類の出力を使用できます(stdout、stderr、ダイアログボックスなど) ポイント 点の数は数で割ったあなたのコード内で使用されるバイト数に等しい明確な、余分に使った言語。 注:言語ごとに異なるエンコードが使用されます。バイト数は、独自のエンコーディングで初期言語でカウントされます。 例 Pyth -> J -> Javascript -> output30バイト= 30/2 = 15ポイント(JとJavascriptは追加の言語です) Java -> C# -> C++ -> PHP -> output36バイト= 36/3 = 12ポイント(より多くのバイトとより多くの言語がより少ないバイトとより少ない言語で勝つことができます(これらの言語が36バイトでそれを行う方法はないことを知っています) C -> output10バイト= 10/0 = 無限大ポイント(追加の言語なし) Python -> Perl -> Ruby …

7
フォールトトレラントハローワールド(別名インタビュー)
インタビューの最後に、悪のインタビュアーは次のように語っています。「すべての応募者に短いコーディングテストを行って、彼らが話していることを本当に知っているかどうかを確認します。心配しないでください。実用的なプログラムです。すぐに仕事を提供します。」彼はあなたが近くのコンピューターに座るようにジェスチャーします。「あなたがしなければならないのは、有効なHello Worldプログラムを作成することです。しかし」-そして彼は広く笑います-「キャッチです。残念ながら、このマシンにある唯一のコンパイラには小さなバグがあります。ソースコードファイルをコンパイルする前に。OK、5分でお会いしましょう!」そして彼は部屋から出て、喜んで口whiを吹く。 あなたが仕事を得ることを保証できますか? タスク Hello, world!ファイル内の任意の位置から単一の文字が削除された後でも、標準出力に印刷するプログラムを作成します。または、できるだけこれに近づいてください。 ルール 無関係な出力なし - Hello, world!標準出力に印刷される唯一の実質的なものでなければなりません。選択した言語によって自然に生成される他の文字を含めることは問題ありません -末尾の改行やそのようなもの[1] "Hello, world!"(たとえば、Rを使用している場合)でも、毎回まったく同じものを印刷する必要があります。たとえば、 印刷できないHello, world!Hello, world!場合がありますHello world!" && x==1。ただし、警告は許可されます。 テストスコアをテストするために、プログラムの各可能な順列をテストする必要があります。各文字を削除してテストし、正しい出力が生成されるかどうかを確認します。この目的のために、多くの言語で機能するはずの簡単なPerlプログラムを以下に示しました。うまくいかない場合は、テストプログラムを作成して回答に含めてください。 採点あなたのスコアはあるプログラムが失敗した回数。言い換えると、文字を削除するとプログラムが機能しなくなるファイル内の個々の位置の数です。最低スコアが勝ちます。同点の場合、最短のコードが優先されます。 "Hello, world!"いくつかの言語(15のスコア)などの単純なソリューションは受け入れられますが、勝つことはできません。少なくともスコア4のPerlソリューションを見つけましたが、最終的に投稿します。 更新: 公式の勝者はチューリング完全なプログラミング言語を使用し、印刷する定義済みのメカニズムを使用しませんHello, world!。使用される外部リソース(言語の標準ライブラリ以外)はプログラムの一部と見なされ、同じ1文字の削除の対象となります。 これらの要件は、ポストイットノートでデスクに貼り付けられていました。最初に表示されなかった場合はおologiesび申し上げます。 アップデート2:はい、あなたのプログラムは実際にスコアを受け取るために上記のタスクを達成しなければなりません!つまりHello, world!、少なくとも1回は正常に印刷されるはずです。これは明らかなはずです。機能を追加するコマンドラインスイッチおよびその他の設定もプログラムの一部としてカウントされ、単一文字の削除の対象となります。プログラムは、ユーザー入力なしでタスクを実行する必要があります。コンパイルに失敗すると、失敗カウントにカウントされます。 幸せなプログラミング、そして仕事を手に入れてください。しかし、あなたが失敗した場合、おそらくその邪悪なボスのために働きたくなかったでしょう。 Perlテストスクリプト: use warnings; use strict; my $program = 'test.pl'; my $temp_file = 'corrupt.pl'; my $command = "perl -X $temp_file"; …

14
言語の名前を印刷する多言語を書く
あなたの仕事は、できるだけ少ない文字数で、できるだけ多くの言語で実行するプログラムを書くことです。些細な解決策を避けるために、プログラムは実行された言語の名前を印刷する必要があります。 得点 プログラムは少なくとも5つの言語で動作する必要があります。プログラムのスコアは次のとおりです。 (number of languages)1.5 / (length of program) 最初の有効な回答から10日以内に最高のスコアが獲得されます。

15
9ホールチャレンジ[終了]
9ホールチャレンジ 難易度の異なる9コードゴルフチャレンジ。 同じ言語を複数回使用した場合の罰則。 質問は、パー、ホールチャンピオン、トロフィーの勝者で更新されます。 これは私が何人かの友人と行ったコンペティションから来たもので、通常の形式ではありませんが、あなたが何人かがそれの異なるスピンに感謝することを願っています。以下の課題、ルール、トロフィー。 穴 グリーンウェイ(24) f(c:string, n:integer) のnインスタンスを含む行を出力しますc。 荒野のどこか(73) f(t:string, s:string, n:integer) -> iin iのnthインスタンスのインデックスは どこですか。st 夕食のカレー(6235) f(x:function, y: function) -> g どこをg呼び出す機能がありy、n倍。nの戻り値はどこですかx 噴出(92) f(p:string) ファイルに書き込みp、ランダムな文字のランダムなサイズの長方形(ascii)で塗りつぶします。 トレジャーハント(75) f(p:string, c:char) -> (x, y)pシンボルのグリッドを含む ファイルを読み取り、グリッド内のそのシンボルの最初のインスタンスの座標xとy座標を返します。 クワイ川の橋(179) f(l:list[int]) の差分ブリッジ図を印刷しlます。例えば[1,7,3,17,1] /+6\ /-4\ /+14\ /-16\ 1 7 3 17 1 上記の数値のサイズに従ってスペースが作成されていることを確認してください。3桁の長い数字の場合、下の行の数字の間に4つのスペースが必要になります。 キャッチ:どこかに、コードはズボンを綴る必要があります(少なくとも1つの非英数字区切り文字が必要です。例えば tr(ou,se)(rs) …

10
画像をツイートにエンコードする(Extreme Image Compression Edition)[終了]
Stack Overflow での非常に成功したTwitterイメージエンコーディングの課題に基づいています。 画像が1000ワードの価値がある場合、114.97バイトにどれくらいの画像を収めることができますか? 印刷可能なASCIIテキストのみを含む標準のTwitterコメントに画像を圧縮する汎用的な方法を思い付くように挑戦します。 ルール: 画像を取得し、エンコードされたテキストを出力できるプログラムを作成する必要があります。 プログラムによって作成されるテキストの長さは最大140文字で、コードポイントが32〜126の範囲の文字のみを含む必要があります。 エンコードされたテキストを取り、デコードされた写真を出力できるプログラム(おそらく同じプログラム)を作成する必要があります。 プログラムは外部ライブラリとファイルを使用できますが、インターネット接続や他のコンピューターへの接続は必要ありません。 デコード処理では、元の画像にアクセスしたり、元の画像を含めたりすることはできません。 プログラムは、ビットマップ、JPEG、GIF、TIFF、PNGの少なくとも1つの形式(必ずしもそれ以上ではない)の画像を受け入れる必要があります。サンプルイメージの一部またはすべてが正しい形式でない場合は、プログラムで圧縮する前に自分で変換できます。 判断: これはやや主観的な挑戦なので、勝者は(最終的に)私によって判断されます。重要性を減らすために、以下にリストするいくつかの重要な要因に判断を集中します。 サンプル画像としてリストされていないものを含む、さまざまな画像を圧縮する合理的な仕事をする能力 画像の主要な要素の輪郭を保持する機能 画像内の主要な要素の色を圧縮する機能 画像の細部の輪郭と色を保持する機能 圧縮時間。画像の圧縮率ほど重要ではありませんが、同じことを行う遅いプログラムよりも速いプログラムの方が優れています。 提出には、生成されたTwitterコメントとともに、解凍後の結果の画像を含める必要があります。可能であれば、ソースコードへのリンクを提供することもできます。 サンプル画像: ヒンデンブルク、 山岳風景、 モナリザ、 2Dシェイプ

10
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます
リトルチャンドラーは悲しい。彼を元気づけるために彼に雲を引きます。 注:クラウドを描画しても、実際に彼を元気づけることはありません。 円は、3組として定義できます。(x,y,r)ここxで、デカルト平面上の円のx位置、デカルト平面上の円yのy位置、およびr円の半径です。xそしてy負でもよいです。r常にポジティブです。入力は、スペースで区切られた3タプルの形式の円のリストです。例えば: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 3,1,1手段「に中心点を有する円3,11つの半径を有する。3,2,1.5手段」に中心点を有する円3,21.5半径を有します。 入力のこれらの円をすべてグラフに描画すると、次のようになります(わかりやすくするためにグリッド線とラベルを含めましたが、これらは必須ではありません)。 すべての円が凝集していることに注目してください。つまり、それらはすべて互いに重なり合っており、1つの大きなグループを形成し、残りの部分から分離された小さな円のグループはありません。入力は凝集性が保証されています。 ここで、これらの円によって形成される「境界線」の周りを移動する線を描き、他の線は一切ないとします。これは、すべての円によって形成されるシルエットの境界線を描くようなものです。結果のクラウドは次のようになります。 そのため、このクラウドは、境界を形成する入力内の円の円弧のみを描画することで形成され、単一の形状になります。言い換えると、クラウドは、別の円内にないアークを描くことによって形成されます。プログラムは、上記で説明した形式で入力を受け取り、結果のクラウドを表示する画像を出力します。雲の全体的な形状は正確でなければなりませんが、スケール、色、線の太さ、頂点の見え方はあなた次第です。クラウドが表示されている必要があるため、「このプログラムは白い背景に白い雲を描画する」、「このプログラムは無限に小さなスケールで雲を描画する」、「このプログラムは0の雲を描画する」また、境界線の色は塗りつぶしまたは背景の色と異なる必要があることに注意してください。 もう一つの例。入力: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 出力: クラウドに「穴」がある場合は、穴も描画する必要があります。入力: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 出力: 重要なルールは次のとおりです。プログラムは境界を形成する線のみを描画する必要があります。つまり、単純に円を完全に描画してから、白い塗りでわずかに小さい円を描画することはできません。このメソッドはまだ境界を形成しない線を描画するため、後でそれらを覆うだけです。ルールの目的は、「円を描いてから、白い塗りで円をもう一度描く」実装、またはそれに類似したものを防ぐことでした。答えは、実際に描画する前に描画する場所を実際に計算することです。 これはコードゴルフであるため、最短の文字数が優先されます。

30
OEISの進化
この課題の目標は、整数シーケンスのオンライン百科事典を一度に1 シーケンスずつ再作成することです。Hello Worldの進化と同様に、各回答は以前の回答に依存します。 時間が経つにつれて、この課題はOEISシーケンスの「家系図」を作成します。このツリーに追加するのは簡単です。 ツリーの任意の深さNにある前の回答を見つけます。 その回答のシーケンスによって生成された最初のN個の数値を決定します。 これらの同じ番号で始まり、以前に使用されたことのないシーケンスをOEISで見つけます。 見つけたばかりのこの新しいシーケンスを生成するプログラムを作成します。 回答を深さN + 1として提出する 回答のレベルはスコアリングに影響するため、常に可能な限り深いレベルで回答をツリーに追加する必要があります。ツリーのどこにも答えが収まらない場合は、ツリーの新しいブランチを開始して、回答を深さ1に設定できます。 回答要件 シーケンスを出力するにはいくつかの方法があります。 最初のオプションは、(STDINから、または引数として)数値を入力し、選択したシーケンスのN番目の数値を返すプログラムまたは関数を作成することです。Nに対してシーケンスが定義され、NとS_Nが「合理的なサイズ」であると想定できます(したがって、オーバーフローは発生しません)。また、0インデックス、1インデックス、またはシーケンスのOEISページの「オフセット」の下にリストされているインデックスなど、問題のない合理的なインデックスを使用することもできます。最初のインデックスによって生成される用語は、OEISエントリの最初の用語と一致する必要があります。 2番目のオプションは、数値を入力し、シーケンスの最初のN項を返すプログラムまたは関数を作成することです。出力の最初の用語は、OEISエントリの最初の用語でなければなりません(最初のいくつかの用語を残すことはできません)。連続する用語は、数字以外の文字の任意の文字列で区切る必要があるため、0,1 1.2/3,5;8,11機能しますが011235811カウントされません。 3番目のオプションは、数字の連続ストリームを出力するプログラムを作成することです。2番目のオプションと同様に、連続する用語の間に区切り文字が必要です。 答えには、スタックスニペットの解析を支援するために、次のようなヘッダーを含める必要があります。 # [language], [number] bytes, depth [number], A[new sequence] from A[old sequence] 答えには、シーケンスを生成するコードと、子孫に含める必要がある最初のいくつかの用語を含める必要があります。コントローラがツリー図の一部として使用できるように、これらの少数の用語の前には正確な単語をterms:付ける必要があります。選択したシーケンスの説明を書くこともお勧めします。 投稿が深さ1の回答であり、したがって先祖がない場合はfrom A[number]、ヘッダーのを単に省略する必要があります。 以下に回答例を示します。 # Perl, 26 bytes, depth 3, A026305 from A084912 various code here and here The next …

20
終了コードゴルフ
IOのこのデフォルトに触発されました。 タスク x0〜255の入力整数を指定すると、終了コードでクラッシュするプログラムを作成しますx。 制限事項 終了コードの出力(System.exit(x)、からの戻りmainなど)を直接意図したものを呼び出すことはできません。代わりに、プログラムはエラーまたはクラッシュを引き起こし、1の確率で、プログラムは入力整数で終了します。 この場合、「エラー」および「クラッシュ」という言葉は、プログラムが致命的な意図しない例外を引き起こしたことを意味します。 エラーを直接投げて、直接エラーを引き起こしてはなりません。メソッド、関数、またはその他の目的が異なる機能を果たす(つまり、読み取り専用ディレクトリへのファイル書き込みを実行しようとする)メソッドを使用して、それを引き起こす必要があります。 プログラムには少なくとも2つの終了コードが含まれている必要があります。 シグナルを使用したプロセスの終了は禁止されています。(推論はこの議論で見つかるかもしれません) 得点 プログラムのスコアは、サポートされている終了コードの数によって決定されます。コード終了はタイブレークです。サポートされる終了コードの最大数が勝ちます!

21
プログラミング言語に機能を追加する[終了]
あなたの仕事は、非常に巧妙なライブラリを実装するか、入力テキストを処理したり、コンパイルプロセスを微調整することによって、プログラミング言語に機能を追加することです。 アイデア: PHPスタイルのプレゼンテーションインターリーブをCに追加します(例:)<?c printf("Hello,"); ?> world!。 C#以外の言語の1つにヌル合体演算子を追加します。 PHPにマクロを追加します。 gotoJavaScriptに追加します。 言語Xにパターンマッチングを追加します。 名前空間のサポートを持たない言語に追加します。 CをPHPのように見せます。 HaskellをPascalのように見せます。 ...(コメントセクションにアイデアを投稿してください) ルール: テーブルに何かを持ってきてください。Haskellにメタプログラミング機能を追加するために「テンプレートHaskell」と言うだけではありません。これはStackOverflowではありません。 実装全体が1画面に収まる必要があります(例をカウントしません)。 このタスク専用の外部サイトでコードをホストしないでください。 最も印象的または驚くべき機能が勝ちます。 機能を100%正しく実装することを心配しないでください。それからほど遠い!主な課題は、何をしたいのかを把握し、詳細を慎重に切り捨てることです。、計画された事業が実行可能になるまで。 例: ラムダ演算子を追加するCプログラミング言語にをます。 最初のアプローチ: さて、libgcを使用して、ラムダが上向きおよび下向きfunarg問題を解決するようにしたいと思います。私が最初にやらなければならないことは、Cプログラミング言語のパーサーを記述/検索することであり、その後、Cの型システムについてすべてを学ぶ必要があると思います。型が行く限り、それを理解する方法を理解する必要があります。型推論を実装する必要がありますか、それとも単に仮パラメータを指定どおりに入力する必要がありますか CIのこれらのクレイジーな機能がまだ知らないのはどうですか? Cでラムダを正しく実装することは大きな仕事であることは明らかです。正確さを忘れてください!簡素化、簡素化。 より良い: 上向きのfunargsをねじ込みます、誰がそれらを必要としますか?GNU Cのネストされた関数とステートメント式を使用して、トリッキーなことができるかもしれません。簡潔でハックなコードを使用して、Cでの驚くべき構文変換を披露したかったのですが、これにはパーサーも必要ありません。それは別の日を待つことができます。 結果(GCCが必要): #include <stdio.h> #include <stdlib.h> #define lambda(d,e)({d;typeof(e)f(d){return(e);};f;}) #define map(F,A)({typeof(F)f=(F);typeof(*(A))*a=(A);({int i,l=((int*)(a))[-1]; \ typeof(f(*a))*r=(void*)((char*)malloc(sizeof(int)+l*sizeof(*r))+sizeof(int)); \ ((int*)r)[-1]=l;for(i=0;i<l;i++)r[i]=f(a[i]);r;});}) #define convert_to(T) lambda(T x, x) #define print(T, …

1
最も少ないフリーセルソルバーを構築する
Freecellのゲームでは、エースからキングまでスーツに合わせて4つの基礎杭を構築し、交互に色を変えながら下向きに構築します。ただし、一度に作成できるカードは1つだけなので、シーケンス全体を移動するのに役立つ1つのカードを含むことができる4つの「フリーセル」が与えられます。アイデアは、あなたがゲームを解決するのを助けるために必要に応じて、自由なセルに個々のカードを織り込むことです。 あなたの仕事は、可能な限り少ない動きでこれらのゲームを解決するプログラムを構築することです。 プログラムは、入力として次の形式の52枚のカードのシーケンスを受け取ります。 2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ... これは、次の順序で初期レイアウトで処理されます。 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 …

6
アスキーアートカレンダー
現在の月、日、曜日、時間、分、およびそれが夜であるか日であるか(ただし、年または秒ではない)を示すASCIIアートクロックとカレンダーを作成してみましょう。 特定の時点で、カレンダーは次のようになります:(行間隔を小さくすると見栄えがよくなります) ________________________________________________________________ |\ ____________________________________________________________ /| | | ___ | | | | _( ) | | | | (___)__) -.- | | | | | | | | | | | | -.- | | | | -.- | | | | ___ | | | | _( ) …

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