コードを逆方向に印刷-逆クイン


83

独自のソースコードを逆方向に出力するプログラム、つまりeniuqを作成します。

得点:

  • インターネットからプルデータを使用する場合は+50。
  • 独自のソースコードを読む場合は+25。
  • 1文字につき+1ポイント
  • 最低スコアが勝ちます。

ルール:

  • 他のファイルを使用しない(例reverse.txt
  • 最小コード長は2文字です。
  • プログラムを回文にすることはできません。

1
これは以前に行われたように見えますが、「パリンドロームなし」ルールはありません。
イスジ

3
それらのスコアはボーナスですか、それともペナルティですか?何かがペナルティかボーナスかを言葉で指定する必要があります。これは、+10「実際よりも文字数が10個多いかのようにスコアを付ける」または「コードが文字数を10個増やすことができる」採点される」、または他の解釈。
AJMansfield

7
@AJMansfield最低得点は、+ xがペナルティ、-xがボーナスであることを意味します。
イスジ

9
私が持っている1つの質問は、ソースファイルを読むよりも大きなペナルティを与えられてインターネットからデータをプルするのはなぜですか?
AJMansfield

4
Woohoo、ホットネットワークの質問リストの1位:D私たちのサイトにはもっと注意が必要です...
Doorknob

回答:


69

GolfScript-2


1

(つまり、改行文字は\n1どこ\nですか)

出力:

1

(すなわち1\n


Ilmariを引用するには:

GolfScriptは自動的に出力の最後に改行を追加します

したがって、数字の後に改行が続くと、数字の後に改行が出力されます。


14
+1 Mathematicaソリューションに勝るものはないと思いました。
カヤ

26
かなり退屈なソリューション
...-theonlygusti

@theonlygustiそれはゴルフスクリプトです、ワッディヤは期待しています...
プログラム

96

え?、5文字

!hcuO

私は実際にそれがどのように機能するのか分かりませんが、インタープリターをダウンロードし、あなたが書くなら!hcuO、あなたは得るOuch!

これを実行するには、次のようにプログラムを実行する必要があります。

huh.exe !hcuO

実際にというファイルを探しますが、!hcuO存在しないため、出力しますOuch!


93
わからないことを書いて+1
ランチャー

30
独自のコードがどのように機能するかを理解していないのは、皮肉なことではありませんか?
イッツィ

@Isziそれは冗談です。
AJMansfield

9
huh?適切なドキュメントを見つけるのに苦労していますが、あなたが正しい使い方をしているかどうかはわかりません。使用が意図されてhuh.exe <path to source code>おりOuch!、無効なパスに対して返されるようです。コードを実際のファイルに配置し、そのファイルを引数としてフィードして、huh?何が起こるかを確認してください。またNotes.txt、コメント付きのファイルが生成されることも興味深いです。
イスジ

8
わかりました、このことは理解していると思うが、何も起こらないと私に言っただけです。たぶん、私は私のプライマリシステムでそれをいじるのをやめるべきです。
イスジ

85

Mathematica、3文字

a 2

a 2a2を意味します。したがって、答えは2 aです。


2
誰かが2文字のソリューションを取得できない限り、これはおそらく勝つでしょう。
ike

22
実際、2文字のソリューションを知っています。Mathematicaでも:1#。出力は#1です。
alephalpha

7
@alephalpha:それを答えとして投稿してください!
ProgramFOX

65

H9 +、13文字

!dlrow ,olleH

Webページが言うように、すべての文字ではないH9または+無視されるため、私のプログラムは印刷されますHello, world!


30
クレイジーな難解な言語の唯一の実用的な利点は、これらのクレイジーな質問に答えることです。
totymedli

これらの質問がそうであればより実用的です。
小次郎

1
それはかなり巧妙です!
-theonlygusti

40

Javascript:34文字

reifitnedi detcepxenU :rorrExatnyS

SyntaxError: Unexpected identifier少なくともChromeコンソールでの出力


8
エラー乱用を介してシステムを濫用の賢い利用
WallyWest

2
先生、私の日を作りました:D
major-mann '19

4
オリジナルのアイデア、すでに存在していない答えのpython 2でこのことについて
O0'を。

1
@Lohoris申し訳ありませんが、私はそれを見ませんでした
scrblnrd3

1
Mozilla FirefoxのFirebugコンソール:tnemetats erofeb ; gnissim :rorrExatnyS=> SyntaxError: missing ; before statement
ケノーブ14



20

TI-BASIC、2

i2

i虚数はどこですか。

出力 2i


1
これはホーム画面でのみ機能し、PRGM内では機能しません。
カーニグ14年

8
@kernigh試しましたか?正常に動作します。(TI-BASICプログラムの最後のステートメントが式として評価される場合、プログラムの終了時に結果が「完了」ではなく出力されます)
-AJMansfield

18

ベーシック、22 12 7文字

:-)

1 enil ni rorre xatnyS

編集:プログラムを即時モードで入力できる場合、これはrorre xatnyS(12文字)に減らすことができます。

BBC BASICでは、7文字しか必要ありません。

ekatsiM

13

C ++ 472文字

たくさんのキャラクターがありますが、Cベースの言語ではもっと簡単な方法は考えられません。

#include<iostream>
#include<string.h>
#define p(t) std::cout<<'}'<<';'<<')'<<strrev(&std::string(#t)[0])<<t;
char* strrev(char*p){char*t=p;char*q=p;while(q&&*q)++q;for(--q;p<q;++p,--q)*p=*p^*q,*q=*p^*q,*p=*p^*q;return t;}
int main(){p("(p{)(niam tni};t nruter;q*^p*=p*,q*^p*=q*,q*^p*=p*)q--,p++;q<p;q--(rof;q++)q*&&q(elihw;p=q*rahc;p=t*rahc{)p*rahc(verrts *rahc;t<<)]0[)t#(gnirts::dts&(verrts<<')'<<';'<<'}'<<tuoc::dts )t(p enifed#>h.gnirts<edulcni#>maertsoi<edulcni#");}

13

バッシュ

$ dnuof ton dnammoc :found :hsab-
-bash: dnuof: command not found

長さ:31文字。


sh

$ dnuof ton dnammoc :found :hs-
sh: dnuof: command not found

長さ:29文字。

これは一部のLinuxディストリビューションでは動作しませんが、OSXでは動作します。


tcsh

$ .dnuof ton dnammoC :found.
.dnuof: Command not found.

長さ:26文字。


csh

% .dnuof ton dnammoC :found.
.dnuof: Command not found.

長さ:26文字。


勝者は:

ksh

$ dnuof ton :found :hsk
ksh: dnuof: not found

長さ:21文字。


上記はすべての* unixベースのOSで動作するはずです。


32
私のために動作しません、私は名前のコマンド持っているdnuof
Kroltan

8
追加するのを忘れましたが、dnuofインストールされているディストリビューションでは機能しません(それが何であれ)。くそハッカー。
ケノーブ

5
ハハハ、というコマンドがありdnuofますか?:Dそれは何をしますか?
ドアノブ

11

GolfScript、12文字

"-1%.`"-1%.`

このコードは、二重引用符で囲まれた文字列を取り、"-1%.`"それを反転し(-1%)、複製し.`)、2番目のコピーを無効にし()、二重引用符を復元します。

前のエントリ(13文字):

{`'.~'+-1%}.~

8文字のQUINEに基づいて{'.~'}.~からこの答え ; 出力を文字列化して逆順にするには、余分な5文字が必要です。

追伸 GolfScriptは、出力の最後に改行を自動的に追加することに注意してください。これが出力の一部としてカウントされる場合、1文字余分にコストをかけて、出力に影響を与えることなく、対応する改行をコードのいずれかのバージョンの先頭に追加できます。


10

Befunge 98-10文字

"8k,'!1+,@

これは、インタプリタが"余分なスペースを追加した後にラップされた行を解釈しない場合に機能します。インタプリタがそのようなラップされた行を解釈する場合、この11文字の解決策は機能します(文字列リテラル内の重複するスペースは1つとして解釈されるため):

"9k,'!1+,@ 

gペナルティなしで使用できる場合、これらも機能します(それぞれ7文字と8文字):

"5k,g,@

そして

"6k,g,@ 

9

ルビー、60

puts(2,s=<<2.chop.reverse,s)
puts(2,s=<<2.chop.reverse,s)
2

古典的なルビーの馬に基づいています。


ヒアドキュメントの素晴らしい使用法。
ジョンパーディ

9

Perl、41

$_=q{print~~reverse"\$_=q{$_};eval"};eval

古い52文字の回答(27 + 25ペナルティ)

open+0;print ~~ reverse <0>

独自のソースを読み取り、その逆をスカラーに保存し、それを出力します。


1
scalarオペレータは、置き換えることができ~~。ただし、独自のソースコードを読むには、スコアに+25を追加する必要があります。
パンボックス

@breadbox注目
smcg

+1。私は私のシェルソリューションのようなものを投稿しようとしていました$_='say"lave;\047",~~reverse,"\047=_\$"';eval、しかしあなたのソリューションはより短いです:-) say。あなたはすべて打つことを願ってい難解なすごみを :-)
トマス・

@Tomasに置き換えることを提案してprintsayますか?その結果、何も印刷されなくなります。
smcg

-Mfeature=sayオプションでperlを実行しましたか?
トマス14

9

核分裂、6バイト

通常のクインと同じ長さの一般化されたクインのまれなケース:

"LO+!'

この考え方は通常のクインの考え方と同じですが、左向きのアトム(から始まるL)を使用しているため、印刷モードはコードを逆の順序で走査します。


8

J:26

Standard quining (26 chars):関数を定義し、引用符でそれ自身の定義を渡すことにより:

|.(,],2#{:)'|.(,],2#{:)'''

おそらく短くすることができます。

J固有 (33文字):変数を定義し、変数が定義されているファイル、つまりこのファイルを確認し、そのファイルの内容を出力します。

1!:2&2|.1!:1(4!:4 a=:<'a'){4!:3''

スクリプトから保存して実行する必要があります(つまり、REPLにはありません。質問に対する答えは「ファイルに定義されていません」であるため、読み取るファイルがありません)。


2
2番目のファイルは、自分のファイルを読み取るために+ 25のボーナスを受け取るはずです。
ヨハネ

2
@JohannesKuhn:ペナルティですが、ええ。
jazzpi

1
「ボーナス」の方がいいですね。
ヨハネ

7

> <>、25バイト

これがまだ行われていないことに驚いた。:)

...yhsif sllems gnihtemoS

ここにコードを貼り付けて実行します。

.Jumpコマンドで、スタックからポップxしてyオフに(x, y)し、コードボックス内でIPを移動します。この場合、スタックは空なので、言語の唯一のエラーメッセージが出力されます。

Something smells fishy...

1
ベストアンサー
非常識な

7

マイクロスクリプト、11バイト

これをやらなければならなかった。

0"Caxq"Caxq

驚くべきことに、これは実際に言語で最も短い既知の馬よりも短いです。qそしてa除き、それ以外の場合は同等ですqしながら、引用符を包む追加さaれません。


5

JavaScript jQuery 119 92 74 70文字

alert($("#answer-16051 pre code").text().split("").reverse().join(""))

今度はコメントでミニテックが示唆したようにjQueryを使用し、手動でラッピングする<pre><code>ことtext()で、この投稿で他のコードブロックを妨げることなく使用できます。手動でのラッピング<h4>は、私がテストしたときにchromeium と互換性がなかったため、ほとんどのブラウザーで動作するようになりました。

このプログラムをこのページから実行すると、すぐ上のコードブロックが検出され、その内容が反転されて、アラートボックスに配置されます。

検証するのは簡単で、開発コンソールに貼り付けるだけです。


これは、関数を使用するよりもはるかに長くなります。そして、このページのjQueryを使用するか、少なくともquerySelectorとにかく…
Ry-

@minitechのヒントに感謝しquerySelectorます。今のところ交換しました。jQueryの可能性を調べたいと思いますが、理解するのに少し時間がかかるようです。
AJMansfield

@minitech OK、jQueryヒントをありがとう。(昨日、javascriptの学習を始めたばかりです。)
AJMansfield

私はこのソリューションが好きです。箱の外で考える。
-theonlygusti

4

PHP、41文字(+25)

割り当てを正しく理解したかどうかわかりません。しかし、ここではPHPを試してみます。

while(!isset($s) || $s) echo isset($s) ? array_pop($s) : ($s = str_split(file_get_contents(__FILE__)) and null);

編集:これははるかに短くすることができます:

echo strrev(file_get_contents(__FILE__));

しかし、それはそれほど単純なことがあるため、これはおそらく尋ねられているものではありません...



[実行]をクリックすると、無意味な無意味なものがたくさん表示されます(ここに短いスニペットが>? ;)llun dna ))__ELIF__(f$(tilps_rts = s$( : )s$(pop_yarra ? )s$(tessi ohce )s$ || )s$(tessi!(elihw ;"stnetnoc_"=.f$ ;'teg_elif'=f$ php?<>?}};ESLAF nruter;"ec6x\i66x\02x\e47x\96x\rw あります。また、文字数を含めます。これはコードゴルフです。また、ソースファイルを読んでいるようですので、文字数に25を加算すると、スコアになります。最低スコアが勝ちます。
ジャスティン

@Quincunx第一に、それは後方です...しかし、第二に、これはphpfiddleが生成するソースコードです!(しかし後方に...)彼らは多くのものを逃れ、物事を安全に保とうとしています。元に戻しarray_poparray_shift...ない後方のソースコードを参照してください
NL-X

はい、私は逆ソースコードを見ることができますが、すべての無関係なテキストとは何ですか?エスケープシーケンスはたくさんありますが、そうでないものもあります(例:ESLAF nruterie return FALSE)。
ジャスティン

@Quincunx申し訳ありませんが、phpFiddleの動作に興味を示している場合、または私のコードを批判している場合、私はキャッチしていません。後者の場合、私の防御では、コードを.phpファイルに入れてブラウザーで実行すると、正常に動作します。私はphpfiddleを見るのにうれしいことだと思ったので、内部の仕組みを少し見ることができます。
nl-x

4

MATLAB、78文字:

 
|
.snoisserpxe ro stnemetats BALTAM ni dilav ton si retcarahc tupni ehT :rorrE

このソリューションでは、特殊文字(alt + 0160)で始める必要があり、逆のメッセージを正確に出力することに注意してください。(Pythonソリューションとは異なり)


4

UNIXシェル、31

52文字の実際のソリューション

A='printf "A$ lave;\047`echo $A|rev`\047=A"';eval $A

しかし、注意してください!誠実さは今日の世界では報われません!ペナルティが低すぎる!!

6文字+ 25 = 31:

rev $0

OSX rev $0では次のエラーが生成されますrev: illegal option -- b
ケノーブ14

4

MS-DOS、24バイト

eman elif ro dnammoc daB

出力:

Bad command or file name

3

JavaScript、62

function f(){alert((f+'f()').split('').reverse().join(''))}f()

最新のChrome(v 31.0.1650.63)で動作します。他のブラウザでは、異なる出力が得られる場合があります。(その出力を逆にすると、それは動作します:P)


3

SmileBASIC、118 102バイト

FOR I=-101TO.?MID$(("+CHR$(34))*3,30,102)[-I];:NEXTFOR I=-100TO.?MID$(("+CHR$(34))*3,30,102)[-I];:NEXT

2

JavaScript、56

($=_=>_!=$._?_?$(_.slice(1))+_[0]:')':$('($='+$+')('))()

これはChromeでは機能しないため、環境を明記してください。これはRhinoですか?
ジョージリース

@GeorgeReith:ES6矢印関数をサポートするもの。たとえば、すべてのSpiderMonkeysは正常に動作するはずです(Rhinoを含む)。
Ry-

2

CSS、88バイト

<style>:before,*{display:block;unicode-bidi:bidi-override;direction:rtl;content:'<style>

他のタグとの競合を避けるために、空白のhtmlページを配置してください。


2

JavaScript、53 50 46 43バイト

q=_=>("q="+q+";q()").split("").reverse().join("");q()

(q=_=>`(q=${q})()`.split("").reverse().join(""))()

(q=_=>`(q=${q})()`.split``.reverse().join``)()

(q=_=>[...`(q=${q})()`].reverse().join``)()

これを短くしてください。


ラッパーは必要ありません。q=_=>[...`q=${q}`].reverse().join`` 同様に動作します。
Rɪᴋᴇʀ

ラッパーを削除しても、自動的には実行されません。
ericw31415

する必要はありません。機能は問題ありません。
Rɪᴋᴇʀ

しかし、その後、コードは関数の出力ではなく、関数参照を返します。
ericw31415

@ ericw31415が正しい。関数呼び出しが必要です。
ママファンロール

2

ファジーオクトワカモレ、4バイト

KNU_

K印刷_UNKNプッシュNoneUプッシュし0ます。そして_、スタックの一番上の値をポップします(ただし、印刷はしません)。したがって、_UNK印刷のみです。


なぜK出力するの_UNKですか?
コメアリンガーをケア

@RandomUserはRikerに詳細を尋ねます。彼は言語の作成者です。ドキュメントを読んだだけです。
ハゲバンタ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.