プログラムにないすべての文字を印刷します


221

あなたのタスクは、プログラムのソースコードに表示されない印刷可能なASCIIスペース(0x20to 0x7e)の文字を印刷する(ただし、印刷可能なASCII文字および/またはタブと改行のみを使用して)プログラムを構築することです(ただし、任意の順序で何回もしたい)。

どの言語でもこれを行う最短のコードが優先されます。


19
それらはありますが、「印刷可能なASCII文字」として定義されている0x20からまでの範囲ではありません0x7e。技術的には、タブと改行は実際には制御文字です。
ジョーZ.

3
改行(またはその他の印刷できないASCII文字)を印刷できますか?
flornquake

1
タブと改行は、印刷位置を占めるような方法ではレンダリングされません。彼らは位置を移動します。ANSI Cの「isprint」関数を参照してください。
カズ

1
この質問はどのように復活したのですか?再び賛成票を集め始めました。
ジョーZ. 14年

3
@Timwi:それをしたい場合は、CJK文字スペースのすべての文字も出力する必要があります(コードに表示される文字を除く)。管理が複雑すぎるため、ASCIIのみに制限しました。
ジョーZ. 14

回答:



274

ポリグロット、95

#undef X;A!"$%&'()*+-[,.]/0123456789:<=>?@BCDEFGHIJKLMNOPQRSTUVWYZ\^_`abcghijklmopqrstvwxyz{|}~

何もしません。


19
いいえ、しかしこれはポリゴットです。私はそれを破壊したくありません。
ヨハネ

95
これをGNU Fortranコンパイラーにフィードすると、セグメンテーション違反が発生しました。
マリヌス

12
Cでは、#undef X;whatever junk you want動作します。
ウゴレン

6
Pythonでも機能します(#RubyやPerlなどのコメントに使用するため)
Doorknob

87
あらゆる言語でこれを行う最短のコードが勝ちです。」任意の言語で機能するコードがないため、このエントリは最も多くの言語で機能するコードであるため、勝つはずです。;-D
msb

142

PHP 5.2、4

<?<<

NYUIOMK()'DEAQRWVX[Z]\^@CBGFJqwv{z}|~`bgfkj203547698;=>!#"%$&+*-.phpどこかにあるファイルとして保存します/homeshort_open_tagにある必要がありOnますphp.ini

出力は次のとおりです。

PHP Parse error:  syntax error, unexpected T_SL in /home/wherever/NYUIOMK()'DEAQRWVX[Z]\^@CBGFJqwv{z}|~`bgfkj203547698;=>!#"%$&+*-.php on line 1

42
ハハ、ルールの良い曲げ。
ヨハネス・クーン

6
いいですが、残念ながら:、出力を確認できます。
ハワード


78
@TheGuywithTheHatに感謝しますが、昨日ではなく約1年前にこれに答えました。
Ry- 14

9
@TheGuywithTheHatこれは、抜け穴が面白くて新しく、リンクされたメタ投稿につながったときの答えの1つでした。今ではもうありません。
ヨハネ

48

JavaScript-88

alert("BCDFGHIJKMNPQUVXYZ".toLowerCase())// !#$%&'*+,-0123456789:;<=>?@[\]^_`{|}~AERTOWS

「bcdfghijkmnpquvxyz」を印刷します


13
わあ、toLowerCaseのアイデアが気に入っています。素晴らしいです!
ピエールアラード

2
あなたは数学のビットとの3つの文字を保存することができます"!#$%&*+,-13:<=>?@[\]^_`{|}~AERTOWS";alert('BCDFGHIJKMNPQUVXYZ'.toLowerCase()+95*72)ので、95*72= 6840と文字列に無駄な文字を移動するには、あなたの代わりにそれらを無駄に引用符を使用することができます。それに加えて、コメント内の文字を隠すことは安っぽい感じがします。

28

空白、61 57文字

これは最短ではありませんが、おそらく最も単純なロジックを持っています(実際には単なるループです)。

ここでは完全にコメント化されています。Sはスペース、Tはタブ、Lは改行です。

SSSTSSSSSL     # push 0x20
LSSSL          # label S
SSSTL          # push 1
TSSS           # add
SLS            # duplicate top of stack
SLS            # duplicate again
TLSS           # output ASCII character
SSSTTTTTTSL    # push 0x7E
TSST           # subtract (result - 0x7E)
LTTSL          # branch to label S if top of stack is negative
LLL            # end

上記の修正(分岐命令に余分な重複が必要)と、スタックにプッシュする小さな数字の@resに感謝します。


1
これはそのままでは機能しませんが、条件付きブランチ(LTTSL)の直前に重複するトップオブスタック(SLS)を挿入することで修正できます-条件付きブランチコマンドがスタックのトップを削除するため必要です。結果の64文字のプログラムは、宣伝どおりに機能します。(プログラムは.WS拡張子を持つファイルに格納されている場合、それがオンラインでテストすることができgolf.shinh.org/checker.html
resは

1
また、プログラムの長さは、ほぼ同じプログラムを使用して57に短縮できますが、プッシュされた3つの数字-94、127、126はそれぞれ32、1、126に変更されていますSSSTSSSSSL LSSSL SSSTL TSSS SLS SLS TLSS SSSTTTTTTSL TSST LTTSL LLL
解像度

5年以上経過していることはわかっていますが、ラベルSをラベル(空)に変更して(にLSSSLなりLSSL、にLTTSLなりLTTL)、最後の出口(3つLLL)を削除することで5バイトをゴルフできます。オンラインで生の52バイトを試すか、ここで強調表示と説明を行います。
ケビンクルーッセン

22

C、83 74 69文字

main(z) {for(;++z<96;"\33iE!vk?}GkRP8z"[z/7]&1<<z%7&&putchar(z+32));}

本当に80文字以下にしようと試みましたが、それを実現することができませんでした。私(または他の誰か)がこれを投稿してから10分後に79文字の解決策を見つけ出すという前提で、私は最終的に自分の持っているものを投稿することにしました。さて、10分ではありませんでしたが、原理的には機能していました。

私はソースコードに無料のスペースを必要としないバージョンを投稿したかったが、それは奇妙なアトラクタ軌道に着陸し、いくつかの解決策の間で跳ね返った。それらの1つを安定したソリューションにナッジしようと何分も試みた後、私はあきらめてスペースを追加しました。


21

Golfscript、 26 24文字

"126,32>''+".~\-'.~\-"'-

範囲生成スクリプトを取得し、複製し、実行し、その結果から減算し、結果の減算コードと他の引用文字を減算します。


2
くそー、それは賢い。
マリヌス

1
削除''+、減算の前にプログラムをエスケープ、noopを挿入.;(ドットをカバーするより良い方法を見つけられなかった)、stringの代わりにコードブロックを使用-> {126,33>`-.;}.~16文字
ハワード

どんな順番でも利用できますできますがセミコロンを削除できます。
ハワード

@Howard私はあなたの考えが理解できないのではないかと心配しています。別の回答として投稿できます。
ジョンドヴォルザーク

@PeterTaylorスペースを印刷すると思った?
ジョンドヴォルザーク

20

魚-80

zbcdjkpqruvwxaABCDEFGHIJKLMNOPQRSTUVWXYZ#!"'$%^&*()@!+-[]{},;:/\<>=?|~0123456789

魚がエラーになると、「何かが魚臭いにおいがします...」と出力されます。zは悪い命令なので、すぐにエラーになります


17

コンテストに勝っていないことは知っています。キックのためだけに、通常は使用しない言語で試してみたかっただけです。

Javaの- 209の 195 152 140文字

class a{public static void main(String[]a){for(char c=0;;c++)System.out.print("publicas{tvodmn(Srg[])h=0;w+ye.\"\\xO<?:}".indexOf(c)<0?c:"");}}

改行とタブあり

class a{
    public static void main(String[]a) {
        for(char c=0;;c++)
            System.out.print("publicas{tvodmn(Srg[])h=0;w+ye.\"\\xO<?:} ".indexOf(c)<0?c:"");
    }
}

実行する場合は注意してください:プログラムは終了しません。ハハ

説明

  1. for(char c=0;;c++):a charはとして扱うことができるため、intここでの利点を生かして、可能なすべての値をインクリメントしますc。プログラムを終了するように指定されていないため、文字を保存するために、ループ内の終了条件(2つのセミコロンの間に入る条件)を省略します。:)
  2. "publicas{tvodmn(Srg[])h=0;w+ye.\"\\xO<?:} ".indexOf(c)<0?c:"":残念ながら、非常にエレガントなアプローチではありませんが、仕事は完了します。ソースコードに存在するすべての文字をStringリテラルとして手動でリストし、で現在の文字char cが出現するかどうかを確認しindexOf()ます。indexOf()呼び出しがを返す場合-1、それは存在しないため、印刷する必要があります。残りの部分では、三項演算子を使用して文字とスペースを節約します。

少し説明してもらえますか?
ジョーイローハン

1
@joeyrohan確かに、その下に説明を追加しました。:)
アステリ

クールな;)素敵なもの:)
ジョーイローハン

2
ASCIIの印刷可能なテーブル全体をコメントに入れて、何も返さないjavaプログラムを作成できます。それはあなたのものを打つだろう:
ピエール・アラード

9
ターミナルで実行する前に、これはすべてのユニコード文字を印刷することになると私に言ったかもしれません。
nyuszika7h

14

Perl、49文字

say grep/[^+-246\[-^aceghmprsy]/,map chr,041..126

これは興味深い挑戦です-それは一種のアンチクインです、そして私はそれに現れるキャラクターの範囲を増やすことでプログラムを数回短縮することに成功しました。


14

ルビー、81 78 68 66 62 57

(?!..?~).map{|a|$><<a if/[()ifmap{}|?!.~\/\\\[\]$><]/!~a}

単に自分自身をチェックします。重複する文字は手動で削除されました。

4文字を保存してくれたJoshと、5文字を保存してくれたminitechに感謝します!


終了行の1つを保存するために、$> << xの後にifを配置できませんか?
ジョシュ

@ジョシュはい。今それをします。
ドアノブ

58にそれを取ることができます:(?!..?~).map{|x|$><<x if/[()ifmap{}|x?!.~\/\\\[\]$><]/!~x}
Ry-

1
ああ、変数名のより良い選択、57:(?!..?~).map{|a|$><<a if/[()ifmap{}|?!.~\/\\\[\]$><]/!~a}
Ry-

$><<((32..126).map(&:chr)-IO.read(__FILE__).chars).join別のアプローチを使用した55バイト。
-twe4ked

14

ベファンジ(48)

<|::-1,+*88:<+3*87
6<@.**85
9>"()~&"/%$ |!#';=?}

出力:{zyxwvutsrqponmlkjihgfedcba` _ ^] [ZYXWVUTSRQPONMLKJIHGFEDCBA240


聖なる牛!よくやった!
ランチャー

12

それほど深刻ではありませんが、試してみる必要がありました。

JSFuck(138152)

(ここでコンパイルされたソース)

元のソース:

for(x=0x7e;x>0x19;x--){
    console.log(String.fromCharCode(x).replace(/[\[\]!\+\(\)]/ig, ''))
}

()+ []!を除くすべての文字を出力します!


2
(x)<=> [x][+[]]、コードサイズを増やしますが、必要なアルファベットを小さくします。
ホタル

12

あなたの仕事は、プログラムを構築することです(印刷可能なASCII文字やタブ、改行のみを使用)

まあ、あなたはAPLのためにそれを難し​​くしました(それはデリバレートですか?)
私はすべてのルール無視することにしました!!!

APL(Dyalog)、3 10

⎕AV

原子ベクトル(印刷可能なすべてのASCII文字を含む)を出力します


「なし」の部分を完全に忘れてい
たことがわかりました... しかし、それは簡単な修正です

⎕AV~'AV'''

~'AV''' 除外することを意味します(~、文字A、V、および単一引用符(二重引用符としてエスケープ))します

非ASCIIの印刷については、まあ、すべてのルールを無視しています。


「プログラムのソースコードに表示されない印刷可能なASCIIスペース(0x20to 0x7e)の文字を正確に出力します」出力に印刷可能なASCIIスペース以外の文字が含まれていない可能性があります(キーワードは「正確に」) 、プログラムには「A」と「V」が含まれているため、印刷しないでください。
ホタル

1
少なくとも~、除外された文字のセットに追加する必要があります。;-)ところで、同様のJソリューションはa.-.'a.-'''
-FireFly

2
すべてのルールを無視できますが、受け入れられた回答であることは認められません。
ジョーZ.

11

GolfScript(18 16文字)

"),@`^^32>#.~".~

正当性チェックを行い、エラーのある文字数を出力する追加の行を含むオンラインデモ

。(私は、様々な同等の選択肢を持っている@`^と置換することができる\\`#と交換することができる`か、]バックスラッシュはブロックで、彼らは文字列リテラルで行う方法をエスケープする必要はありませんので、正しい組み合わせは15の彼のスコアを等しくなるようにハワードのトリックで使用できます。{),\`^32>].~}.~。しかし、ハワードはそのトリックの功績に値する)。



2
幸いなことにasciiは終了します}~-コードブロックの場合はさらに良いです。私の新しい答えを参照してください;-)
ハワード

11

Brainfuck、173

+++++[->++++++<]>>>++[------<+>]<++++>>----[----<+>]>-[-------<+>]>-[---<+>]<------->>-[---<+>]<+++++++++>>--[-----<+>]<+++++>>+[---------<++>]+++++++++++++[<[.+<]>[>]<-]\=,

かなり長い間、後でもう一度試すかもしれません。


6
何もしないプログラムを作成し、残りをasciiをソースに追加します。最悪の場合は96文字になります。
ジェイセン14

10

J(52 40)

編集:ダウ、忘れてしまった e.

'''(-@.e#[)~95{32}a'(-.@e.#[)~95{.32}.a.

旧版:

(>@(*/@('(>@*/''&~:).#]32{95}a'&~:)&.>)#])95{.32}.a.

他のバリアント(同じ長さですが、出力は少ない):

([#~*/"1@('([#~*/"1@''&:0)95{.32}a'&~:"0))95{.32}.a.

@JanDvorak:おっとタイプミス
マリヌス

くそ!ルビーであなたを倒すのに十分低くなり、それからあなたが40までそれを落とすことを望んでいました。:P
Doorknob

新しいものは、より多くの質問に見えます。
ジョン・ドヴォルザーク

1
@Doorknob:APLには24文字しかありませんが、非ASCII文字が含まれています。
マリヌス

ええ、私はAPLのような言語を避けるためにASCIIのことをしました。
ジョーZ.

7

Python 3- 68 61

x=r"print(*set(map(chr,range(32,127)))-set(x+'=\"'))"
exec(x)

...改善してくれた@WolframHに感謝します。


1
私はあなたが置くことができると思いexec(x)、新しい行にし、保存;中にx。また、Python 3では、x=r"print(*set(map(chr,range(32,127)))-set(x+'=\"'))"\nexec(x)61文字に使用できます(複数スペースを印刷できます)。
WolframH

@WolframH独創的、ありがとう!

7

PowerShell:96

保存してスクリプトとして実行する必要があります。

diff([char[]](gc $MyInvocation.InvocationName))([char[]](32..126))-Pa|?{$_.SideIndicator-eq'=>'}

diffはの組み込みエイリアスですCompare-Object

gcはの組み込みエイリアスですGet-Content

$MyInvocation.InvocationName 実行中のスクリプトへのフルパスを取得します。

32..126はに相当する10進数であるため0x20..0x7e、探している10進数のASCIIコードの配列を作成します。

[char[]]次のオブジェクトの内容を取得して配列に入れ、それらを分割してASCII文字に変換します。したがって、ASCII文字の2つの配列があります。1つはこのスクリプトから取得され、もう1つはチャレンジ基準によって定義されています。

-Pa セット Compare-Object「パススルー」形式にれるため、入力間で異なることが判明したアイテムのみがコンソールに出力されます。どのアイテムが入力されたのかは、オブジェクトのデータに保存されますが、表示されません。

|?{$_.SideIndicator-eq'=>'}pipes Compare-Objectの出力先Where-Object、2番目の入力専用のアイテムのみにフィルターします。


正気で有益。
ステファンゴーリチョン

7

PHP-92

<? //A"$%&'()*+[,.]0123456789:=-@ABCDEFGHIJKLMNOPQRSTUVWYZ\^_`abcdefghijklmopqrstuvwxyz{|}~#

出力:

何もない

OPは未使用の文字をすべて印刷するように要求します。


どう<?='A"$%&\'()*+[,.]/0123456789:=-@ABCDEFGHIJKLMNOPQRSTUVWYZ\^_`abcdefghijklmopqrstuvwxyz{|}~#'
jocap

私は、すべてのキャラクターを使用するだけの投稿があることを知っていました。
MilkyWay90

これはキャラクターを使用しません!;>Xn
ジョー・キング

6

Javascript、92

(function f(){for(i=32;126>i++;)!~(""+f).indexOf(c=String.fromCharCode(i))&&console.log(c)})()

これは公正な解決策ですか?alert( '! "#$%^ * + /-。/ 0123456789:; <=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _` bcdfghijkmnopqsuvwxyz {|}〜')95文字で入り、地獄のように愚かです。:p
トリスチン

2
@tristin:Pそう、javascriptは文字列への文字コードに関しては少し冗長です。そして、あなたのプログラムが持っていないすべての文字を出力するわけではありません。あなたの警告もあなたのプログラムにあるテキスト:)
C5H8NNaO4

1
ハハ、おっと。しかたがない。
トリスチン

6

Java-126文字

最小化:

class hjq{public static void main(String...w){for(char z='"'|0;++z!='a';)if("'()+.0;=OS".indexOf(z)==~0)System.out.print(z);}}

最小化されていない:

class hjq {
    public static void main(String... w) { 
        for (char z = '"'|0; ++z != 'a';) {
            if ("'()+.0;=OS".indexOf(z) == ~0) {
                System.out.print(z);
            }
        }
    }
}

これは興味深い問題です。なぜなら、個々のトークンは文字を再利用するため、より長い形式の恩恵を受ける可能性があるからです。たとえば、通常String[]は短くなりString...ますが、条件付き文字列の角括弧は不要です。

範囲の最初と最後で文字を使用してみて、ループの開始と終了を変更するだけで出力から除外できるようにするのがコツだとわかりました。

Javaの場合、除外するキー文字はです"。これを文字列に含めるにはエスケープする必要がある\ため、プログラムに追加し、文字列に追加する必要があります\\。除去することにより"、あなたの条件付き文字列から、あなたは4つの文字を削除します。これは、を使用!、からループを開始することで確認できます#

すべて小文字だけで、範囲の終わり近くに現れ{|}および~それらの後に来ます。Javaの冗長性のため、小文字のほとんどは定型文にのみ使用されます。同様に、{かつ}定型がそれらを必要とするため、Javaプログラムのために些細です。

|または条件がある場合に使用できますが|、ビット演算子として使用するよりも短いプログラムにつながるものを利用する方法を見つけることができませんでした。|0それはちょうどそこに文字を取得するにはNOPです一部だけだから、私は、少し汚れを感じさせます。

~0yieldsは-1、で確認する必要があるため便利indexOfです。これと組み合わせて!= for条件付きループにすると、<文字が完全に削除されます。つまり、条件付き文字列の中に入れる必要はありません。


5

sh(47)

tr</dev/urandom -cd \[:print:]|tr -d "`cat $0`"

自己参照アプローチを使用します。想定/dev/urandom最終的にすべてのオクテットを少なくとも1回出力するとます。終了しません。

それmanがインストールされていると仮定すると、代わりにascii(7)マンページを使用できます(したがって、終了プログラムがあります)(44文字、@ fennecに感謝します)。

man ascii|tr -cd \[:print:]|tr -d "`cat $0`"

可能性のあるすべてのオクテットを持つことが本質的に保証されている、おそらくより短い名前の別のファイルを使用できますか?終了することもありますか?/ dev / memoryか何かのように考えています。

我々はそれを前提とした場合@fennec manzshインストールされている、man zshall基準に適合しているようです。これをバリエーションとして追加できます。
FireFly 14年

man ascii別の手紙を保存できると思います。

どちらtrを使用していますか?GNU tr- in " cat $0"を範囲演算子として出力を中断します。
トビースパイト

ところで、もし asciiプログラムがインストールされている、の代わりにそれを使用できますman ascii
トビースパイト

5

BitShift、1038バイト

ビットシフトは唯一のサポート言語である01構文として。他のすべての文字を印刷するのは簡単だと思いましたが、ループを実際にサポートしていないため、それでも1038バイトの大容量になりました。
しかし、これより小さくすることは実際には不可能だと思います。

101001100101011011010100110111010100100101011001101111010100100101011001000101011011010100101100110110101001001010110010001010110110101000001101010010010101100100010101101101010000010000011001010110110101000010000101011011010100110111010100100101011111100101011011010100110111010100100101011001101111010100100101011001000101011011010100000000011010100100101011001000101011011010100110010000101011011010100110111010100100101011001101001101010010010101100100010101101101010011001000010101101101010011011101010010010101111011111110010101101101010011011101010010010101100101100101011011010100010001010110110101001000010101101101010011011101010010010101110111110010101101101010011011101010010010101111111100101011011010100110111010100100101011111011110101001001010110010001010110110101001000100000101011011010100110111010100100101011111010011010100100101011001000101011011010100100000101011011010100110111010100100101011001101111010100100101011001000101011011010100010000010101101101010011011101010010010101101001101101010010010101101001101010

プリント

 !"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

ここで試してみてください


4

ここでは間違いなく最も長いソリューションですが、Linoでのコーディングは常に楽しいものです。

リノリウム -655 523文字

"libraries"/arch/cpu/base;/hmi/conout;/data/bytes;/data/string/t2s;/data/heap;/data/heap/connect/mgrab;"stockfile"a;"directors"displaystatus=engage;"injection"c=524;b<-bytes.bytesizeconvert:c;b<-heap.alloc:b;a<-heap.alloc:c;[filecommand]=readfile;[filename]=stockfile;[fileposition]=0;[fileblocksize]=c;[fileblockpointer]=b;arch.fileread;[string.psource]=b;[string.ptarget]=a;string.t2s;b<-heap.alloc:7fh;c=32;d=b;"f"[d_32]=c;+c;+d;?c<7fh>f;"w"d=[a];+a;?d=0>y;?d<32>w;?d>7eh>w;e=b;e+d;[e]=33;^w;"y"b+32;"v"conout.say:b;bye;

コメントはありません。バイナリにコンパイルされたソースを読み取るだけです。名前を付けて保存しa.txtないと、コンパイルされません!


4
いいえ、JSFuckのほうが長いです。
ジョーZ. 14

4

Brainfuck、133の 123 114 110バイト

++++++++++++++++[->++++++>++>+++>++++>++<<<<<]>-->>->->+[---<.+.+<.+<.+<.+.+.+>>>>]++[-<.+.+.+<.+>>]<+.<+.<++.

以前のソリューションを少しいじりました(以下が小さいことに気づく前に-これはいくつかの最適化を行う前でしたが)。これは、4組のASCII番号を保存し、それらをトリッキーなループで印刷し、その後欠落している文字(つまり、無効なASCII番号の間にある文字)を出力することによって機能します。

元の提出

>>+++++++++++[<+<+>>->++>+++<<]<++>>++++++>>+++++[-<<<++++++>>>]<<<+<<[->>+.<<]>>++.++<[->+.<]>++.+>[-<+.>]<++.+>>[-<<+.>>]

次のことを行います。

  • 11、13、28、33を含む4つのレジスターを作成します
  • 値31で5番目を作成して印刷を開始します
  • アスキー32-42の印刷(11)
  • ASCIIを印刷44
  • アスキー47-59を印刷(13)
  • アスキー61を印刷
  • アスキー63-90を印刷(28)
  • アスキー92を印刷
  • アスキー94-126を印刷(33)

4

ハスケル(70)

import Data.List
main=putStrLn$[' '..'~']\\" \\\"$'.=DLS[]aimnoprstu~"

ストリング内のプログラム内の退屈な重複文字、ユニバーサルセットからの減算ソリューション。コードゴルフの勝者とはほど遠いが、その長さは驚くほど読みやすい。

filter/の代わりにリスト減算を使用notWith


変更import Data.Listすることができますimport List
誇りに思ってhaskeller 14

。@ proudhaskellerハァッ、本当に?runhaskell「モジュール 'List'が見つかりませんでした」で試してみると、動作しないようです。しかし、文字数を誤って数えることに気づいたので、修正しました。
FireFly 14

1
まあ、それは奇妙です、ghcまたはghciで試してみてください?それは私のために働く
誇りに思ってhaskeller 14

@proudhaskellerいや、それを動作させることはできません。これはGHC 7.8.3でのものです。
FireFly 14

3

J-21

(u:32+i.97)-.1!:1<":5

これを5現在のディレクトリで呼び出されるファイルに書き込みます。次に、スクリプトをロードして実行します0!:1<'5'

または、25ファイルトリックなし:

(-.~".)'(":u:32+i.0-~95)'

ソースコードにはが含まれますが'、これは出力から削除されません。
ホタル14

3

Clojure(142、106、103)

(defn -main[](let[c"(fn[l](pr(reduce disj(set(map char(range 32 126)))l)));-\\\"o"]((load-string c)c)))

フォーマット済み:

(defn -main []
  (let [c "(fn[l](pr(reduce disj(set(map char(range 32 126)))l)));-\\\"o"]
    ((load-string c) c)))

これはそれを行うと思う、いくつかの微調整が必​​要な場合があります。出力:

#{@ ` ! A B b # C $ D % E & F ' G H I * J + K k , L M . N / O 0 P Q q R S 4 T 5 U V v 7 W w 8 X x 9 Y y : Z z { < | = } > ^ ? _}

評価可能なclojureコードである文字列をそれ自体で実行します。文字列は、文字列の外側で使用される文字を取得するためのコメントを最後に持っています(mainメソッドなど)


3

Python 2、69

for x in range(38):print chr(x+59)#!"$%&'*,-./012467bdjklmqsuvwyz{|}~

最長の(見つけることができる)連続した文字のシーケンスを使用します。コードの後に​​印刷して他のコメントをコメントとして追加できます。


8
コメントのあるものに賛成するつもりはありません
ジョンドヴォルザーク

私の答えは、このタスクを解決するための可能な限り最悪の方法を示す必要があります。(コメントの抜け穴を使用します)。
ヨハネ

9
OK ...何もないことポリグロットを除きけどコメント。
ジョンドヴォルザーク

@JohannesKuhnただし、動作する最長のコードであるため、コンテストには勝ちません。:P
ジョーZ.

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