একটি "প্রতারণা" কুইন


56

দীর্ঘ সময়ের লুকার, প্রথমবারের পোস্টার। সুতরাং এখানে যায়।

কুইনের উইকিপিডিয়া পৃষ্ঠায় এটি বলেছে যে "একটি কুইন যদি তার নিজস্ব উত্সের কোডটি দেখে তবে 'প্রতারণামূলক' বলে বিবেচিত হবে।" আপনার কাজটি হ'ল এর মধ্যে একটি "প্রতারণামূলক কুইন" তৈরি করা যা তার নিজস্ব উত্স কোডটি পড়ে।

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড - প্রতিটি ভাষায় - জিতেছে। এর অর্থ হ'ল 5-বাইট পাইথ স্ক্রিপ্ট 21-বাইট পাইথন স্ক্রিপ্টকে পরাজিত করবে না - তবে 15 বাইট পাইথন স্ক্রিপ্ট।

উত্স কোডটি পড়তে আপনাকে অবশ্যই ফাইল I / O ব্যবহার করতে হবে, সুতরাং অফিসিয়াল উইকিপিডিয়া পৃষ্ঠা থেকে নেওয়া জাভাস্ক্রিপ্ট কোডটি অবৈধ:

function a() {
    document.write(a, "a()");
}
a()

এটি অবশ্যই ডিস্কে ফাইলের উত্স কোড অ্যাক্সেস করতে হবে ।

আপনাকে ফাইলের নামটি নির্দিষ্ট করার অনুমতি নেই। আপনাকে অবশ্যই এটি ফাইলের নামটি সনাক্ত করতে হবে।

সবাই পরিষ্কার? প্রবেশপথ!


1
মূল ফাইলটিতে একটি চলন্ত নিউলাইনগুলি উপস্থিত না?
isaacg

3
@ আইস্যাকগ আইএমএইচও এটি কোনও কোয়েন নয়, যেহেতু এটি উত্স কোড নয়।
mınxomaτ

3
আপনার একটি প্রয়োজনীয়তার বিবরণ দেওয়া উচিত যে এটি উত্সের অবস্থানের জন্য একটি হার্ড-কোডিং স্ট্রিং ধরে না রেখে আসল ফাইল নামটি নির্ধারণ করে।
ফেয়ারসাম

3
আমি @ ফার্সামের সাথে একমত, যদিও একটি নির্দিষ্ট ফাইলের নামের প্রয়োজন এই চ্যালেঞ্জটিকে তুচ্ছ করে তোলে।
mınxomaτ

1
আমরা কি ধরে নিতে পারি যে (সংকলিত ভাষাগুলির জন্য) উত্স কোডটি একই ফোল্ডারে রয়েছে (অর্থাত্ উত্স পেতে আর্গুমেন্টে আমরা ".cpp" বা ".hhs" যুক্ত করতে পারি)।
HEGX64

উত্তর:


60

Zsh , 4 বাইট

<$0

জেড শেলটিতে বিলিন কার্যকারিতা রয়েছে The

এটি অনলাইন চেষ্টা করুন!

কোডটি কোনওভাবেই ফাইলের নামের উপর নির্ভর করে না; এমনকি ফাইলের নামটিতে স্পেস বা নিউলাইনগুলির মতো বিশেষ চরিত্র থাকলেও এটি কাজ করে।

টেস্ট রান

$ cat "my quine.sh"
<$0
$ zsh "my quine.sh" 
<$0
$ diff -s <(zsh "my quine.sh") <(cat "my quine.sh")
Files /dev/fd/63 and /dev/fd/62 are identical

28
feline functionalities:)
theB

48

বাশ, 6 বাইট

cat $0

মূলত।


3
এটি কোনও নতুন লাইন মুদ্রণ করে না।
অ্যাডিসন ক্রম্প

2
catএকটি নতুন লাইন সংযোজন করে না (অন্ততপক্ষে আমার সিস্টেমে)।
একটি স্প্যাগেটো

7
@ আইসএএচজি catপ্রতি বাইট সরবরাহকৃত ফাইল বাইটের সামগ্রী মুদ্রণ করে।
ডেনিস

2
@ লুকস্টোরমস কিন্তু catসমাধানের পরিবর্তে এটি কি কোনও bashসমাধান হবে না? এবং বিড়াল প্রোগ্রামিং ভাষা হিসাবে সত্যই যোগ্যতা অর্জন করে না
ফ্যাবিয়ান শেমংলার

30
ফাইলটির নামকরণ করা হলে এই কাজ করবে -e?
প্লটনিককে চিহ্নিত করুন

32

ইউনিক্স এক্সিকিউটেবল লোডার, 10 বাইট

#!/bin/cat

আপনি যদি স্ট্যান্ডার্ড ত্রুটিতে স্প্যাম সম্পর্কে চিন্তা না করেন তবে আপনি এটিকে এক বাইট আরও খাটো করে তুলতে পারেন:

#!/bin/dd

7
আমি এই পছন্দ। যদিও এটি "ভাষা" হিসাবে যোগ্য হয় কিনা তা নিশ্চিত নয় Not
কেভিন

সম্ভবত কিছুটা প্রতারণা করছে, তবে আপনি কীভাবে নিজের বিন ফোল্ডার এবং বিড়াল প্রোগ্রামটির নাম পরিবর্তন করতে পারবেন?
জেমস ওয়েবস্টার

3
আমি পরামর্শ নই আপনি কি BTW। এটাই বলতে চাচ্ছি আপনি পারা
জেমস কারার

3
@ কেভিন "ভাষা" (অর্থাত্ দোভাষী) হলেন cat। এবং আমি অনুমান করি আপনি যদি খুব সুনির্দিষ্ট হতে চান তবে একটি catপ্রোগ্রাম কেবল নিজের মুদ্রণ করে এবং অস্তিত্বের প্রতিটি ফাইল ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ :)
l0b0

1
@JamesWebster sudo install /bin/cat /c। হ্যাঁ, আপনি যদি সচেতন /binহন তবে মূল ফাইল সিস্টেমটিতে নেই। catএটি একক ব্যবহারকারীর মধ্যে রয়েছে ...
ব্ল্যাকলাইট জ্বলজ্বল

25

সি, 52

s[99];main(){read(open(__FILE__,0),s,99);printf(s);}

অবশ্যই, এটি উত্স কোডটি পড়ে এবং সংকলিত প্রোগ্রামটি নয় - আমি ধরে নিই যে এটি অনুমানের মধ্যে রয়েছে।


পেছনের নতুন লাইনটি এড়ানোর printfপরিবর্তে আপনি ব্যবহার করতে পারেন puts
ফেয়ারসাম

@ ফেয়ারসাম হ্যাঁ, ভাল ক্যাচ
ডিজিটাল ট্রমা

19
@ ডিজিটালট্রামা এটি অবশ্যই আপনার অবতারের কারণে
পিটার ওলসন

3
আসলে, putsব্যবহার করা যেতে পারে, আপনার কেবলমাত্র readকম অক্ষর প্রয়োজন ।
ব্যবহারকারী 4098326

2
@ ক্যাস্পারড হ্যাঁ,
ডিজিটাল ট্রমা

13

পিএইচপি, 21 বাইট

<?=file(__FILE__)[0];

fileএকটি অ্যারে রেখায় একটি ফাইল লাইন পড়ে এবং ফাইলটিতে কেবল একটি লাইন থাকে। এটি তুলনায় একটি বাইট সংরক্ষণ করে readfile(__FILE__)


লক্ষ্য করুন যে এটি কেবল পিএইচপি 5.4 এবং তার থেকে উপরে কাজ করে, যা অ্যারে ডি-রেফারেন্টেশন সমর্থন করার জন্য প্রথম সংস্করণ ছিল। তবে তা ছাড়াও বেশ চমৎকার উত্তর!
ইসমাইল মিগুয়েল

1
readfileএছাড়াও 21 হল: <?readfile(__FILE__);
primo

1
ঠিক আছে, এটির দরকার নেই<?=
ফ্যাবিয়ান শেমংলার

12

পার্ল, 15 বাইট

open 0;print<0>

@ এইসুইটসআইবল্যাকটকে ধন্যবাদ 3 বাইট সংরক্ষণ করা !


2
আপনি 3 বাইটের সাহায্যে এটি সংরক্ষণ করতে পারবেনopen 0;print<0>
এটিসুইটস ব্ল্যাকনট

@ থিসটুইটস ব্ল্যাকনাট আমি নিশ্চিত যে এটি করার একটি আরও ছোট উপায় ছিল, তবে আমি আমার জীবনের কাজটি করতে পারিনি ... তখন 0ধরে নিচ্ছি $0?
ডম হেস্টিংস

3
হাঁ। দেখুন perldoc -f open: "শর্টকাট হিসাবে একটি যুক্তিযুক্ত কল ফাইলহ্যান্ডেলের মতো একই নামের গ্লোবাল স্কেলার ভেরিয়েবল থেকে ফাইলের নাম নেয়: $ARTICLE = 100; open(ARTICLE) or die "Can't find article $ARTICLE: $!\n";"
এইসুইটস ব্ল্যাকনট

11

পার্ল 6, 20 বাইট

print slurp $?FILE

আমি পার্ল 6 এর সাথে খুব দীর্ঘ সময় ধরে কাজ করি নি তাই এই সংক্ষিপ্ত করার কোনও কৌশল আছে কিনা তা আমি নিশ্চিত নই।


2
আপনি দ্বিতীয় স্থান সরাতে পারেন?
veভী

3
@Eevee নাঃ, এটা রেগে
হট

11

osascript (কমান্ড লাইন থেকে অ্যাপলস্ক্রিপ্ট), 40 33 32 বাইট

(আমার কাছে পাঠের পথ) এর অনুচ্ছেদ 1

উইথ নামক একটি ফাইলে কার্যকর করা হচ্ছে osascript a

ফাইলের প্রথম অনুচ্ছেদ (লাইন) পায় এবং এটি একটি পিছনের নিউলাইন দিয়ে STDOUT এ মুদ্রণ করে, সুতরাং কোডে নতুন লাইন।



এটি কাজ করার জন্য কাজ করে।
অ্যাডিসন ক্রম্প

read path to meআমার জন্য কাজ করে বলে মনে হয়. এল ক্যাপ।
ডিজিটাল ট্রমা

এটি দেখেনি, তবে এইভাবেই এটি শেষ করেছিলাম। : পি ধন্যবাদ, @ ডিজিটালট্রামা। সম্পাদনা করুন: চলমান নিউলাইনগুলি অবশ্যই বিবেচনা করা উচিত, সুতরাং আপনি নতুন লাইন যুক্ত করুন এবং অনুচ্ছেদ 1 ব্যবহার করুন
অ্যাডিসন ক্রম্প

11

পাইথন 2, 32 বাইট

ফাইলটির শেষে একটি নতুন লাইন রয়েছে।

print open(__file__).readline()

পাইথন 3, 33 বাইট

ফাইলটির শেষে একটি নতুন লাইন রয়েছে।

print(open(__file__).readline())

সমস্যাটি ধরা এবং সরবরাহের জন্য ফেয়ারসামকে ধন্যবাদ __file__, লভজো পাইথন 2 সমাধানে নতুন পদ্ধতির জন্য 17 বাইট সংরক্ষণ করেছিলেন এবং স্কাইলার এমন একটি সমাধানের জন্য যা আরও একটি বাইট সংরক্ষণ করেছে এবং পাইথন 2 এবং 3 উভয় ক্ষেত্রে কাজ করেছে ( printপাইথনের ফাংশন থাকার জন্য মুলতুবি রয়েছে) 3)!

এর জন্য ডক লিঙ্ক readline


এটি পাইথন 3 এ 2 বাইট সংরক্ষণ করতে পারে কারণ আপনি endপ্যারামিটারটি বাতিল করতে পারেন ।
স্কাইলার 21

@ স্কিলার আপনি একেবারে সঠিক
সেলো নভো

পাইথন 3 এ কীভাবে কাজ করে, যার জন্য প্যারেন্স দরকার print?
ডুরকনব

পাইথন 3 এর print(open(__file__).readline())পরে একটি নতুন লাইন অনুসরণ করা উচিত ।
স্কাইলার 21

আপনার পাইথন 3 উদাহরণটি পাইথন 3 এর চেয়ে পাইথন 2 বলে
TheInitializer


10

পাইথন 2.7, 30 বাইট

print open(__file__).read(29)

সম্পাদনা: কেবল পরিষ্কার করার জন্য, উপরের কোডটির 30 তম বাইট হিসাবে শেষে একটি নতুন লাইন থাকার কথা। কোড ব্লকে এটি কীভাবে প্রদর্শিত হবে তা নির্ধারণের জন্য আমি যথেষ্ট মার্কডাউনের সাথে পরিচিত নই।

আমি আমার সি জমা দেওয়ার মতো কৌশলটি এখানে ব্যবহার করছি। এটি printআউটপুট সংযোজন করবে অতিরিক্ত নিউলাইন হিসাবে অ্যাকাউন্টে পিছনে থাকা নতুন লাইনটি বাদ দিয়ে পুরো উত্স ফাইলটি পড়ে ।


অন্যান্য জমা দেওয়ার মতো এই পেছনের নতুন লাইনের সাথেও কি একই সমস্যার সৃষ্টি হয়?
কোলে

না। অনুমানযোগ্য একটি নতুন লাইনের কথা বলা উচিত যা উত্স কোডে 30 তম বাইট তৈরি করে তবে আমি কোড ব্লকে প্রদর্শন করতে পারি না। আমার জমাটি কাজ করে কারণ এটি উত্স কোডের প্রথম 29 বাইট পড়ায় যাতে নতুন printলাইনটি বহিরাগত না হয়।
xsot

4
কমা এটি করে না। এটি একটি নতুন লাইনের পরিবর্তে একটি স্থান সংযোজন করে।
xsot

2
␤ ব্যবহার করতে পারে একটি শব্দার্থগতভাবে গুরুত্বপূর্ণ সম্পর্কে newline ইঙ্গিত
Eevee

9

জাভা, 212 196 বাইট (সন্দেহজনক হার্ড কোডিং বিধি সহ 171 বাইট)

15 ক্রাইটারটি 15 ডলার বাইট কমিয়ে দেওয়ার জন্য আপনাকে ধন্যবাদ!

আমার সন্দেহ নেই যে এটি গল্ফ করা যেতে পারে।

import java.nio.file.*;class A{public static void main(String[]a){new A();}A(){try{System.out.print(new String(Files.readAllBytes(Paths.get(getClass().getName()+".java"))));}catch(Exception e){}}}

বা, অন্য একটি পদ্ধতি, স্থির পদ্ধতি ব্যবহার করে (এবং শ্রেণীর নাম), আমি 171 বাইট পাই। যদিও এটি হার্ড কোডড হিসাবে যোগ্যতা অর্জন করেছে তা আমি নিশ্চিত নই।

import java.nio.file.*;class A{public static void main(String[]a)throws Exception{System.out.print(new String(Files.readAllBytes(Paths.get(A.class.getName()+".java"))));}}

অ স্থির পদ্ধতি দ্বারা শ্রেণীর নাম পেতে কনস্ট্রাক্টর ব্যবহার করে। একটি স্থিতিশীল পদ্ধতি ব্যবহার করা ( A.class.getName()) সত্যিই শক্ত কোডড ছিল, তাই আমি 'যথাযথ' উপায়টি ব্যবহার করেছি। ব্যবহার করে A.class.getName(), এই কোডটি 171 বাইটে সংক্ষিপ্ত হয়ে যায়।

পাঠযোগ্য সংস্করণ:

কনস্ট্রাক্টর এবং ব্যবহার করে this.getClass():

import java.nio.file.*;
class A{
    public static void main(String[]a) {
        new A();
    }
    A(){
        try{
            System.out.print(
                new String(
                Files.readAllBytes(
                Paths.get(
                getClass().getName()+".java"))));
        }
        catch(Exception e) {}
    }
}

স্থির পদ্ধতি ব্যবহার A.class.getName():

import java.nio.file.*;
class A {
    public static void main(String[] a) throws Exception {
        System.out.print(
             new String(
                  Files.readAllBytes(
                       Paths.get(
                            A.class.getName()+".java"))));
    }
}

ফাইলের সমস্ত বাইট একবারে গ্রাস করে এবং এটি STDOUT এ আউটপুট করে। অনেকটাই অকপট.


কেন শুধু ব্যবহার A.class.getName()করবেন না ?
ফ্যাবিও এফ

3
এটি কোডগল্ফ নয় কোডরিউ! ;)
ফ্যাবিও এফ

1
@FabioF। হ্যাঁ, তবে আমি মনে করি যে হার্ডকোডযুক্ত ফাইলের নাম হতে পারে যা নিয়মের পরিপন্থী। মুল বক্তব্যটি হ'ল, আপনি যদি ফাইলটির নাম পরিবর্তন করেন তবে আপনাকে ক্লাসের নাম পরিবর্তন করতে হবে (স্পষ্টতই), তবে এই লাইনটিও পরিবর্তন করতে হবে, যা হার্ডকোডযুক্ত ফাইলের নামের মতো।
ক্রંચার

1
আপনি কি কনস্ট্রাক্টরের অভ্যন্তরে মুদ্রণ বিবৃতিটি কল করতে এবং স্ট্যাটিক ভেরিয়েবল সেট করা থেকে নিজেকে বাঁচাতে পারবেন না?
ক্রંચার

1
পছন্দ করুন আপনি java.io পান, আমি java.nio এ আঁকড়ে থাকব - পয়েন্টটি জয়ের নয়, বিভিন্ন পদ্ধতিতে এটি অত্যন্ত সংক্ষেপে করার উপায় দেখায়।
অ্যাডিসন ক্রম্প 18

8

অটোআইটি, 34 বাইট

ক্লিপবোর্ডে নিজেকে আউটপুট দেয়:

ClipPut(FileRead(@ScriptFullPath))


7

যান, 111 105 বাইট

package main
import("io"
."os"
."runtime")
func main(){_,p,_,_:=Caller(0)
f,_:=Open(p)
io.Copy(Stdout,f)}

আমার প্রথম কোড-গল্ফ - আপনি কয়েকটি কৌশল এখানে ব্যবহার করতে পারেন বলে আমার ধারণা।


গোতে ইতিমধ্যে একটি উত্তর রয়েছে - এটি কি একই পদ্ধতি ব্যবহার করে?
অ্যাডিসন ক্রম্প 12

@ ভোটটোক্লোস: আমি বুঝতে পেরেছি, আমি প্রকৃতপক্ষে অন্যটি দ্বারা অনুপ্রাণিত হয়েছি, তবে এখানে প্যাকেজটির নামকরণ (সস্তা ট্রিক) পাশাপাশি স্টাডআউটে ফাইল খোলার এবং পাইপ দেওয়ার জন্য বিভিন্ন কৌশল ব্যবহার করা হয়েছে। আমাকে একটি বিশাল 22 বাইট সংরক্ষণ করেছেন ;-)
টমাসজ

পদ্ধতিটি আসলে কিছুটা আলাদা, ভালো!
ফ্যাবিয়ান শেমংলার

7

পাওয়ারশেল, 39 36 31 25 বাইট

আমি যতটা শক্ত তা পেতে পারি:

gc $MyInvocation.MyCommand.Path | oh

জনপ্রিয় চাহিদার সমর্থিত এটিতে পরিবর্তিত হয়েছে:

gc $PSCommandPath|echo -n

শেল বর্তমান মান আউটপুট হোস্ট প্রিন্ট ।


gc $MyInvocation.MyCommand.Pathযথেষ্ট। এটি স্বয়ংক্রিয়ভাবে এটি মুদ্রণ করবে।
অ্যান্ড্রু

বিশেষত স্ক্রিপ্টটি নিঃশব্দে চলতে থাকলে এর গ্যারান্টিযুক্ত নয়
চাদ ব্যাক্সটার

হাহা হ্যাঁ, আমি পাত্তা দিই না। অন্য কারও কাছে পাওয়ারশেলের উত্তর না থাকলে আমি পোস্ট করতে যাচ্ছিলাম। তবে আমি ভুলে গিয়েছিলাম যে gcএটি একটি উপনাম ছিল এবং কেবল ব্যবহার করতে যাচ্ছিল cat, সুতরাং যাইহোক আপনি সেখানে আমার উপর একটি বাইট রেখেছিলেন।
অ্যান্ড্রু

ওহ, আমি এটি সম্পর্কে কঠোর হতে হবে না। অন্যথায় প্রতিটি পিএস উত্তর স্পষ্টভাবে হোস্ট শেলটি পাইপ করতে হবে, কিন্তু এটি আপনার উপর ...
অ্যান্ড্রু

পরিবর্তে আপনি gc $PSCommandPath17 বাইট ব্যবহার করতে পারেন । আমি যে সমস্যাটি দেখছি তা হ'ল এটি একটি নতুন লাইন ছড়িয়ে দিয়েছে (যা উত্সটিতে নেই)। এটি এখন অস্পষ্ট, যদি নতুন লাইনটি অনুসরণ করা ঠিক থাকে বা না হয় ... সেই নিয়মগুলির উপর নির্ভর করে আমাদের gc $PSCommandPath|write-host -n31 বাইটের মতো কৌশলপূর্ণ কিছু করার প্রয়োজন হতে পারে ।
অ্যাডমবর্কবার্ক


5

সি, 49 বাইট

s[];main(){read(open(__FILE__,0),s,48);puts(s);}

সম্পাদনা: পরিষ্কার করতে, 49 তম বাইটটি একটি নতুন লাইন।

এটি putsআউটপুট শেষে যুক্ত হবে এমন নতুন লাইনের জন্য অ্যাকাউন্টে সোর্স কোড বিয়োগ করে নিউলাইনটি পড়ে ।


এই কোডটি দু'বার অনির্ধারিত আচরণের আহ্বান জানায়।
জোশুয়া

5
ঠিক আছে, এটি কোড গল্ফ। আমার কোড পছন্দসই আউটপুট উত্পাদন করে তাই এটি একটি বৈধ জমা।
xsot

1
@xsot সেক্ষেত্রে আপনার সম্ভবত সংকলক সংস্করণ + বিকল্পগুলি তালিকাভুক্ত করা উচিত; অন্যথায় এটি যাচাইযোগ্য নয়।
জাস্টিন

1
যদি অপরিজ্ঞাত আচরণের অনুমতি দেওয়া হয় যতক্ষণ আপনি চাঁদের কোনও পর্যায়ে কিছু মেশিনে কাঙ্ক্ষিত আউটপুট তৈরি করে এমন কিছু সংকলক রাখতে পারেন তবে আমি ইনট মেইন (শূন্য) prop * 0 এর প্রস্তাব দিই; সমাধান হিসাবে। সর্বোপরি, মানকটি এমন একটি প্রয়োগের অনুমতি দেয় যা সমস্যা সমাধান করে এমন একটি প্রোগ্রামের মধ্যে সংকলন করে। যতক্ষণ আপনি সংকলকটি নির্দিষ্ট করেন ততক্ষণ বাস্তবায়ন-নির্ভর আচরণ ব্যবহার করে আমি ভাল থাকব, তবে অপরিজ্ঞাত আচরণের সাথে আপনি গ্যারান্টিও দিতে পারবেন না যে আপনি যদি পর পর দশবার দৌড়ান তবে আপনি দশটি আলাদা উত্তর পাবেন না guarantee একই মেশিন
রায়

1
@ এমডিএক্সএফ আমি গুরুত্ব সহকারে প্রস্তাব দিচ্ছিলাম না যে আমরা সেই সমাধানটি লিখি। আমি অনির্ধারিত আচরণের অনুমতি দেওয়ার বিরুদ্ধে তর্ক করছি। এটি বিদ্যমান সংকলকগুলিতে এমনকি কাজ int main() {*0;} করতে পারে , কারণ এটিতে সংজ্ঞায়িত আচরণ থাকে। একইভাবে, এক্সসটের সমাধানটি বিদ্যমান সংকলকগুলিতে কাজ করতে পারে , কারণ এটিতে সংজ্ঞায়িত আচরণ থাকে। উভয়ই সমস্যা সমাধানের গ্যারান্টিযুক্ত নয়। (যদিও এক্সসটস স্বীকৃতভাবে এটি করার বেশি সম্ভাবনা রয়েছে তবে এটি সম্ভবত খুব সহজেই ক্র্যাশ হতে পারে)। আমার আসল যুক্তি হ'ল আমাদের এমন সমাধানের অনুমতি দেওয়া উচিত যা বাস্তবায়ন নির্ভর বা অনির্ধারিত আচরণের উপর নির্ভর করে তবে অপরিজ্ঞাত আচরণ নয়।
রায়


4

পাইথ, 25 বাইট

$import sys$h'e$sys.argv

এটি এর ফাইলের নাম পড়ে। মূলত, এটি আরগভি দেখায়, ফাইলটি তার শেষ যুক্তির সাথে সম্পর্কিত করে এবং তার প্রথম লাইনটি মুদ্রণ করে।


তুমি কি করতে পার না h'$__file__$?
kirbyfan64sos

@ kirbyfan64sos এটি আমাকে ত্রুটি দেয় NameError: name '__file__' is not defined। পাইথ পাইথনে সংকলিত হয় এবং তারপরে ফলাফল স্ট্রিং কার্যকর হয়। সুতরাং আমি আশা করি না যে এটি কাজ করবে।
isaacg

4

যান, 133 বাইট

সবাই পরিষ্কার? প্রবেশপথ!

package main
import("fmt"
"io/ioutil"
"runtime")
func main(){_,f,_,_:=runtime.Caller(0)
s,_:=ioutil.ReadFile(f)
fmt.Print(string(s))}

2
এটি আমাকে গোতে নিজের (এবং প্রথম প্রথম) কোড-গল্ফ সমাধান লিখতে অনুপ্রাণিত করেছিল। কিছু সাধারণ কৌশল খুঁজছেন, উদাহরণস্বরূপ, প্যাকেজগুলির জন্য একক-বর্ণের নাম প্রয়োগ করে আপনি এখানে সহজেই 123 টি অক্ষরে যেতে পারেন r"runtime"
tomasz

4

> <> , 13 বাইট

0:0go:c=?;1+!

অনলাইন এবং অফলাইন উভয় দোভাষী পরীক্ষা করা। gকমান্ড সোর্স ফাইল থেকে পড়তে এবং এটি যদি এই প্রতিদ্বন্দ্বিতা করার উদ্দেশ্যে গণনা করা হয় না আমি আমার এন্ট্রি চিহ্নিত করব অ প্রতিদ্বন্দ্বী সক্ষম হচ্ছে নিকটস্থ হয়; আমি বিশ্বাস করি যে এটি সাধারণত কুইন্দের জন্য "প্রতারণা" বলে বিবেচিত হয়।

এটি অনলাইনে চেষ্টা করুন।


4

হাস্কেল, 63 বাইট

বিজ্ঞানের জন্য!

import System.Environment
main=getProgName>>=readFile>>=putStr

শুধুমাত্র runhaskellকমান্ড দিয়ে কাজ করে । যদিও খুব দুর্দান্ত
HEGX64

4

> <> , 31 বাইট

দাবি অস্বীকার: কোনও ফাইল আই </ i> <> নেই, তবে আমি ভেবেছিলাম যে এর কোডস্পেস I / O উত্তরাধিকার সূত্রে প্রাপ্ত ভাষা বেফুঞ্জ থেকে প্রদর্শন করা আকর্ষণীয় হবে, যা অন্যতম ভাষা </> অনুপ্রাণিত করে।

00voa0+1;!?$~<
1+> :r:@g: ?!^o$

কিছুক্ষণ আগে তৈরি একটি স্ব-পঠন কুইন, আপনি এটি এখানে চেষ্টা করতে পারেন

আমি কেবল দেখলাম একটি সংক্ষিপ্ত> <> স্ব-পঠন কুইন রয়েছে । যদিও কোড-গল্ফের মানদণ্ডগুলিতে এটি স্পষ্টতই ভাল তবে আমি উল্লেখ করতে চাই যে এতে কোডের দৈর্ঘ্য হার্ডকোডযুক্ত রয়েছে, যখন খনিটি অতিরিক্ত লাইনগুলি বা কোডের কলামগুলিকে অনুলিপি করবে (যতক্ষণ না তারা মূল কোডটি না ভঙ্গ করে)।


আমি> <> এ পোস্ট করার কথা ভাবছিলাম, তবে আমি ভেবেছিলাম> <> নিয়মের কারণে অসম্ভব হবে: "উত্স কোডটি পড়তে আপনার অবশ্যই ফাইল I / O ব্যবহার করতে হবে"
Sp3000

@ এসপি 3000 হ্যাঁ, সত্যিই মনে হচ্ছে আমি চ্যালেঞ্জটি যথেষ্ট পরিমাণে পড়িনি read আমি একটি দাবি অস্বীকার করব
অ্যারন

3

এফ #, 54 বাইট

printf"%s"(System.IO.File.ReadAllText __SOURCE_FILE__)

ব্যবহার:

fsi --exec a.fsx

3

পার্ল 5, 15 13 বাইট

এটি অনুপ্রেরণার জন্য বাশ সমাধানটিতে ক্রেডিট:

print`cat $0`

সম্পাদনা: আধা কোলন বা প্রথম স্থানের দরকার নেই।


খাঁটি পার্ল নয়, এর জন্য আরও কিছু এক্সিকিউটেবল প্রয়োজন, যথা cat, বর্তমান এবং এর মধ্যে আবিষ্কারযোগ্য $PATH। তবে যদি এটি উপস্থিত থাকে তবে এটি কেবলমাত্র উপলব্ধ একটি কমান্ড হিসাবে ধরে নেওয়া যেতে পারে perl, তবে কেন নয়।
গোলার র‌্যামব্লার

3

নোড.জেএস, 66 63 বাইট

p=process;p.stdout.write(require('fs').readFileSync(p.argv[1]))

ব্যবহার করে না console.log, যা একটি নতুন লাইন যুক্ত করে।


1
আপনি সিঙ্ক্রোনাস এপি ব্যবহার করে কয়েকটি বাইট সংরক্ষণ করতে পারেন:p=process;p.stdout.write(require('fs').readFileSync(p.argv[1]))
তেহশ্রাইক

1
console.log(require('fs').readFileSync(process.argv[1]))\n57 বাইটের জন্য কেন নয় ?
কনার ও'ব্রায়েন

এটি সবসময় কাজ করে না। ফাইল নাম বলুন test.js। এটি চালিয়ে চালিত হওয়া বৈধ node test, যা এর ফলে কোনও ত্রুটি ঘটায়।
প্যাট্রিক রবার্টস


3

হাস্কেল , 49 বাইট

{-#LANGUAGE CPP#-}main=putStr=<<readFile __FILE__

এটি অনলাইন চেষ্টা করুন!

(জিএইচসি) হাস্কেলের সি প্রিপ্রসেসর ব্যবহার করার জন্য একটি এক্সটেনশন রয়েছে (সাধারণত সংস্করণ এবং আর্কিটেকচারের মধ্যে বহনযোগ্যতার জন্য ব্যবহৃত হয়) আশা করি স্ব-ব্যাখ্যামূলক n


3

এইচটিএমএল জাভাস্ক্রিপ্ট, ১১৫ বাইট

<!DOCTYPE html><html><title>x</title><script>alert(new XMLSerializer().serializeToString(document))</script></html>

এই কি গণনা? আমি কিছু মনে করি না, এটা মজা ছিল :)

প্রযুক্তিগতভাবে এটি কোনও ফাইল খুলবে না। এটি একটি সুসংহত HTML5 নথিও। এক্সএমএলসিরালাইজার হ'ল একমাত্র হাতিয়ার যা ডক্টইপিই অংশটিও ফিরিয়েছিল তবে এটি মানক নয়। তবুও, এটি ক্রোম এবং ফায়ারফক্সে কাজ করে এবং আমি অন্যান্য ব্রাউজারগুলিকে বাজি ধরে।

এবং একটি বোনাস হিসাবে:

জাভাস্ক্রিপ্ট, 41 বাইট

alert(document.currentScript.textContent)

অপসারণ ";" শেষে, 1 বাইট সংরক্ষণ করুন :)
Новиков Новиков

1
@ ЕвгенийНовиков আপনি ঠিকই আছেন, নিশ্চিত হন না কেন আমি কেন তখন পিছনে রেখেছি। মনে হচ্ছে যদিও আমি এটি গণনা করি নি।
ডমিনো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.