স্ট্যান্ডার্ডে সংখ্যাগুলি যোগ করুন


32

প্রতি লাইনে একটি পূর্ণসংখ্যা সহ একটি স্ট্রিম / ফাইল বিবেচনা করুন। উদাহরণ স্বরূপ:

123
5
99

আপনার কোড এই সংখ্যার যোগফল আউটপুট করা উচিত, যে 227

ইনপুট ফর্ম্যাটটি প্রতি লাইনে কঠোরভাবে একটি পূর্ণসংখ্যা হয়। আপনি উদাহরণস্বরূপ, অনুমান করতে পারবেন না যে ইনপুটটি একটি লাইনে পূর্ণসংখ্যার অ্যারের হিসাবে রয়েছে।

আপনি এসডিডিআইএন থেকে কোনও ফাইলনামের আকারে, বা আপনার পছন্দের নামের একটি ফাইল থেকে ইনপুট নিতে পারেন; আপনি কোনটি চয়ন করতে পারেন। ইনপুট পাওয়ার অন্য কোনও উপায় অনুমোদিত নয়।

ইনপুটটিতে কমপক্ষে একটি পূর্ণসংখ্যা থাকবে। আপনি ধরে নিতে পারেন যে সমস্ত পূর্ণসংখ্যা অ-নেতিবাচক এবং তাদের মোট যোগফলের চেয়ে কম ।232


2
ট্রেলিং নিউলাইন আছে? এটি কি নতুন লাইনের ?চ্ছিক?
দয়া করে দু:

9
নমস্কার! আমি এই চ্যালেঞ্জটিকে অগ্রাহ্য করেছি কারণ এটি সীমাবদ্ধ ইনপুট ফর্ম্যাট করে গ্রহণযোগ্য ইনপুট / আউটপুট ফর্ম্যাটগুলির জন্য আমাদের সম্প্রদায়ের মানগুলির বিরুদ্ধে যায় ।
অ্যাডমবর্কবার্ক

1
@ অ্যাডমবর্কবার্ক এবং আমি চ্যাট রুমে দৈর্ঘ্যে এটি নিয়ে আলোচনা করেছি। আমরা একমত হতে সম্মত হয়েছি :)

22
জটিল I / O এর বিষয়গুলি এড়াতে এবং নির্বিচারে পূর্বনির্ধারিত ওভাররাইডের লেখক হিসাবে , আমি এই কারণগুলিতে এই চ্যালেঞ্জটি রক্ষা করতে চাই। এখানে, প্রক্রিয়াজাতকরণ ইনপুট হ'ল চ্যালেঞ্জের মাংস, অতিরিক্ত কাজ নয় যা মূল চ্যালেঞ্জ থেকে বিচ্যুত হয়। এটি অদ্ভুত I / O প্রয়োজনীয়তার সাথে "সংখ্যা যুক্ত করুন" নয়, একটি পদক্ষেপ হিসাবে যুক্ত করার সাথে এটি "এটি করুন I / O"। মূল কাজটি জুড়ে শর্টকাট না দেওয়া উত্তরগুলির জন্য মান I / O কে ওভাররোলিং করা প্রয়োজনীয়।
xnor

2
ফাংশন ইনপুট কেন ব্যবহার করা যাবে না?
ক্যালকুলেটরফলাইন 21

উত্তর:


15

05 এ বি 1 , 2 বাইট

|O

ব্যাখ্যা:

|   Get input as array
 O  Sum

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


7
এটি হাস্যকর :)

এটি কি স্ট্যান্ডার্ড থেকে পড়ে?

1
@ লেবেমিক এটি করেন।
Okx

আমি বিশ্বাস করি আপনার 2 বাইট উত্তরটি প্রথম ছিল। তুমি বিজয়ী হয়েছো! (যদি না কেউ 1 টি বাইট উত্তর না পেয়ে থাকে))

4
@ ললেবিক বা একটি 0 বাইট উত্তর ....
কমরেড স্পার্কলপনি

21

বাশ + কোর্টিলস, 16 বাইট

xargs|tr \  +|bc

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

এর পরে দুটি স্পেস রয়েছে \। এটি নেতিবাচক সংখ্যার জন্যও কাজ করে।

ব্যাখ্যা:

xargs             # known trick to turn newlines into spaces, while adding a
                  #trailing newline when printing the result (needed for bc)
|tr \  +          # turn spaces into '+'s
|bc               # calculates the sum

আপনি ভাবতে পারেন কেন tr \\n +|bcভাল না, কারণ এটি নতুন লাইনে সরাসরি '+' এর দিকে পরিবর্তিত হয়। ভাল, এতে 2 অপ্রত্যাশিত ত্রুটি রয়েছে:

  • যদি ইনপুটটির পিছনে নতুন লাইন থাকে, তবে এটি একটি 'ট্রেলিং' + এ রূপান্তরিত হয়, সুতরাং সংযোজন সম্পাদনের জন্য এটির পরে কোনও সংখ্যা নেই
  • এবং সবচেয়ে অদ্ভুত সমস্যাটি হ'ল বিসিটির ইনপুট পরে একটি নতুন ট্র্যাকিং নতুন লাইনের প্রয়োজন, তবে আপনি কেবল ইনপুটগুলির সমস্ত নিউলাইনগুলিকে '+' এর সাথে প্রতিস্থাপন করেছেন।

1
আমি এই পছন্দ। এটা সুন্দর এবং চতুর।

আপনি xargs ছাড়াই tr\\ n + ব্যবহার করতে পারবেন?

1
@ লিম্বিক আপনার মানে tr \\n +|bc? যদি তা হয় তবে দয়া করে আপডেটটি দেখুন। ভাল প্রশ্ন.
শৈশুমারা

paste -s -d+|bc15 বাইট হয়
ডেভিড কনরাড

1
@ ল্যাম্বিক সে ক্ষেত্রে বিবেচনা করেনি, তবে ভাগ্যক্রমে স্ক্রিপ্টটি এখনও কাজ করে। xargs|tr \ +এক্ষেত্রে কিছুই করে না, এবং বিসি নম্বরটি পেয়ে এটি প্রিন্ট করে।
সেশৌমারা

14

এমএটিএল , 2 বাইট

Us

এটি কল করা কোনও পাঠ্য ফাইলে ইনপুটটি প্রত্যাশা করে defin

জিআইফ বা এটি ঘটেনি :

এখানে চিত্র বর্ণনা লিখুন

অথবা এটি অনলাইন চেষ্টা করুন! ( সেট আপের জন্য ডেনিসকে ধন্যবাদ! )

ব্যাখ্যা

যখন একটি এমএটিএল প্রোগ্রাম চালিত হয়, যদি কোনও ফাইল বলা definহয় (নামটি "ডিফল্ট ইনপুট" বোঝায়), এর বিষয়বস্তু স্বয়ংক্রিয়ভাবে পাঠ্য হিসাবে লোড হয় এবং কোডটি কার্যকর করার আগে স্ট্রিং হিসাবে স্ট্যাকের দিকে ঠেলে দেয়।

ক্রিয়া U সংখ্যার কলাম ভেক্টরে রূপান্তর করতে স্ট্রিংকে মূল্যায়ন করে এবং সংখ্যার অঙ্ক করে s, যা স্পষ্টভাবে প্রদর্শিত হয়।



12

+ বিসি, 13 বাইট আটকান

paste -sd+|bc

ব্যাখ্যা:

paste -s        Take one line at a time from input
        d+      Joining by '+'
          |bc   Pass as expression to bc

আর একটি শেল উত্তর!


1
খুব পরিষ্কার পরিপাটি।

ওহ, আমি paste -s -d+|bcসুইচগুলি একীভূত করতে পারি তা বুঝতে পারি নি। ঝরঝরে!
ডেভিড কনরাড

12

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

say sum lines

চেষ্টা করে দেখুন

ব্যাখ্যা

  • lines()থেকে $*INবা লাইনের একটি তালিকা ফেরত দেয়$*ARGFILES "ম্যাজিক" কমান্ড-লাইন ইনপুট হ্যান্ডেল দেয়
  • sum(…)পার্ল to-তে যুক্ত করা হয়েছিল [+] Listএমন পজিশনগুলির জন্য অনুকূলিতকরণের জন্য যা তাদের সমস্ত মান যেমন তৈরি না করেই তাদের যোগফল গণনা করতে পারে 1..100000
    (আমি কেবল ভাবতাম যে আমি sumএখানে [+]যেমন ব্যবহার করি ঠিক তেমনই খুব সুন্দর )
  • say(…)এর ইনপুটটিতে .gistপদ্ধতিটি কল করুন এবং একটি অতিরিক্ত নতুন লাইন দিয়ে মুদ্রণ করুন।

এটি পার্ল 5 কী?

15
এটি ললকোডের মতো পড়ে
ব্রায়ান

@ ল্যাম্বিক এটি স্পষ্টভাবে পার্ল 6 হিসাবে লেবেলযুক্ত , যা পার্ল 5 এর একটি বোন ভাষা ।
ব্র্যাড গিলবার্ট

একটি টাইপো ছিল। আমি বুঝিয়েছি পার্ল 5 এ কী?

1
$a+=$_ for <>;print $aপার্ল 5 এ ভাল কাজ করে তবে একটি ছোট উপায় হতে পারে।
ব্র্যাড গিলবার্ট 22 '14

10

সি, 53 বাইট

r;main(i){for(;~scanf("%d",&i);r+=i);printf("%d",r);}

সি এর শংসাপত্রগুলি আবার

2
আমার মনে হচ্ছে আরও ছোট একটি উপায় হওয়া উচিত, তবে আমি এটি দেখতে পাচ্ছি না :)
ডিজিটাল ট্রমা


9

রেটিনা , 11 7 বাইট

-4 মার্টিন ইন্ডারকে ধন্যবাদ

.*
$*
1

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


অ্যানারিতে রূপান্তর করুন:

.*
$*

এর সংখ্যা গণনা করুন 1:

1

1
আকর্ষণীয় কীভাবে রেটিনা, একটি রেজেক্স ভিত্তিক ভাষা হিসাবে, এখনও অবধি পোস্ট করা সংক্ষিপ্ত বশ উত্তরের চেয়ে কম বাইটে যোগফল করতে পারে। +1
শৈশুমারা

এই পড়া কি স্ট্যান্ডার্ড থেকে?

2
@ লাম্বিক এটি হ্যাঁ।
রিলে

যদি আনারিতে ইনপুটটির অনুমতি দেওয়া হয় তবে এটি কেবলমাত্র একটি বাইট।
mbomb007

@ mbomb007 আমি ইতিমধ্যে সেজে চেষ্টা করেছি।
রিলি

8

ব্রেন-ফ্লাক , 20 বাইট

(([]){[{}]{}([])}{})

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

ব্যাখ্যা

আড্ডায় রিলির তৈরি সমাধানের বাইরে এটি একটি গল্ফ । তার সমাধানটি ছিল:

([])({<{}>{}<([])>}{})

যদি আপনার ব্রেইন-ফ্ল্যাকের সাথে পরিচিত হয় তবে এটি বেশ স্ব-ব্যাখ্যামূলক। এটি স্ট্যাকের উচ্চতার দিকে ধাক্কা দেয় এবং নীচে নামার সাথে সাথে একটি মানকে পপ করে, শেষে এটি সমস্ত রানের যোগফলকে ঠেলে দেয়।

এটি বেশ ভাল গল্ফ তবে তিনি উভয়ই জিরোস {}এবং ([])তবে এর একটি মান রয়েছে যা কেবলমাত্র একটির দ্বারা পৃথক হয় যদি এর পরিবর্তে আমরা মুখোশগুলি সরিয়ে ফেলি এবং দু'টি নেতিবাচক হয়ে যাই তবে প্রায় বাতিল হওয়া উচিত should

([])({[{}]{}([])}{})

যেহেতু তারা সর্বদা একের দ্বারা পৃথক হয় আমাদের দুর্ভাগ্যজনক পরিস্থিতি রয়েছে যেখানে আমাদের উত্তরটি সর্বদা স্ট্যাকের উচ্চতার দ্বারা বন্ধ থাকে। এর প্রতিকারের জন্য আমরা প্রথম স্ট্যাকের উচ্চতা ঘিরে রাখার জন্য ধাক্কাটির শুরুটি কেবল সরাতে পারি।

(([]){[{}]{}([])}{})

1
নেতিবাচক পপটি পূর্বের উচ্চতাটিকে ধাক্কা দেওয়ার কারণে (লুপের আগে বা পূর্ববর্তী সময়ের শেষের মধ্য দিয়ে) বাতিল করে দিয়েছিল এবং শেষ উচ্চতা 0 হয় যাতে এটি উপেক্ষা করা যায়।
রিলে


7

আর, 11 বাইট

sum(scan())

scanইনপুট নেয়, প্রতি লাইনে এক নম্বর। এবং sum, ভাল, যোগফল।


7

পার্ল 5 , 9 বাইট

কোড + -pপতাকা 8 বাইট ।

$\+=$_}{

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

এর সাথে -p, ইনপুটটি একবারে একটি করে লাইন পড়ে $_time আমরা $\সংগ্রহকারী হিসাবে ব্যবহার করি , কারণ -pপতাকাটির জন্য ধন্যবাদ , এটি স্পষ্টতই শেষে মুদ্রিত হয়। তুলনাহীন ম্যাচটি }{ব্যবহার করা হয় তাই মুদ্রণের পরিবর্তে -pপতাকাটি কেবল $\একবার প্রিন্ট করে $_এবং $\প্রতিটি লাইনে এটি পড়ার মতো হয় যা এটি সাধারণত করে।


আমি পার্স করতে পারি না! :) ব্যাখ্যা করুন।

@ ল্যাম্বিক আপনি এখানে যান
দাদা

তুলনামূলক মিল নেই খুব অস্পষ্ট!

@ লিম্বিক এগুলি প্রথম বন্ধনী নয় ... তারা ফরাসি বা কোঁকড়া ধনুর্বন্ধনী আপনি কাকে জিজ্ঞাসা করছেন তার উপর নির্ভর করে তবে তারা অবশ্যই তা নয়)(
ক্রেগআর 8806

1
accoladesস্পষ্টত: লিলম্বিক
মাইকেল Vehrs

7

খাঁটি বাশ, 37 36 বাইট

বাইটের জন্য @ কেভিন ক্রুজসেনকে ধন্যবাদ!

while read a;do((b+=a));done;echo $b

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


3
খুব সুন্দর এবং পরিষ্কার।

আমি কখনই বাশে প্রোগ্রাম করি না , তবে এর মধ্যে স্থানটি সরিয়ে দেওয়া কি সম্ভব নয় do ((? Tio কাজ মনে হয়।
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন হ্যাঁ, মনে হয় এটি কার্যকরভাবে কাজ করে। আমি আমার দৈনিক শেল হিসাবে zsh ব্যবহার করি এবং এটি কোনও স্থান ছাড়াই zsh এ কাজ করে না, আমি কেবল ধরে নিয়েছিলাম এটি ব্যাশে কাজ করবে না তবে দৃশ্যত এটি কাজ করে।
betseg

6

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

interact$show.sum.map read.lines

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

interactস্টিডিন থেকে পুরো ইনপুট সংগ্রহ করে, এটিটিকে তার আর্গুমেন্ট হিসাবে দেওয়া ফাংশনে পাস করে এবং স্ট্রিংটি মুছে ফেলা হয় যা এটি এই ফাংশন থেকে ফিরে আসে। ফাংশনটি হ'ল:

            lines   -- split input into list of lines at nl
      map read      -- convert every line to a number (read is polymorphic,
                    -- but as want to sum it later, the type checker knows
                    -- it has to be numbers)
    sum             -- sum the list of numbers
show                -- convert back to string

1
এটি আমাকে হাস্কেলের মতো করে তোলে। স্ক্যালায়, আমাকে তা করতে হবে lines.map(_.toInt) কারণ সমষ্টি স্ট্রিংয়ের কাছ থেকে বা এক্ষেত্রে একটি স্পষ্টত একরকম সংখ্যক অন্তর্নিহিত রূপান্তর আশা করে।
স্টেফান আলেক্সিć

6

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

<?=array_sum(file(t));

এটি ধরে নিয়েছে যে পূর্ণসংখ্যার একটি তালিকা সহ "t" নামে একটি ফাইল রয়েছে।

file()একটি ফাইল খোলে এবং অ্যারেতে প্রতিটি লাইনের সাথে আলাদা আলাদা উপাদান সংরক্ষণ করে একটি অ্যারে প্রদান করে। array_sum()একটি অ্যারের মধ্যে সমস্ত উপাদান যোগফল।


5

ওও, 19 বাইট

{s+=$1}END{print s}

ব্যাখ্যা:

{s+=$1}                For all lines in the input, add to s
        END             End loop
           {print s}    Print s

1
"ব্যাখ্যা শীঘ্রই আসছে ™" যদি এটি ট্রেডমার্ক না করা হয় তবে এটি আমার নতুন ক্যাচফ্রেজ হবে ...
ETH প্রোডাকশনগুলি

2
অজকের ভাষায়, আপনার উত্তরটি কেবলমাত্র 19 বাইট: {s+=$1}END{print s}:)
ডিজিটাল ট্রমা

5

ডিসি , 14 বাইট

0[+?z2=a]dsaxp

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

ব্যাখ্যা:

 [      ] sa   # recursive macro stored in register a, does the following:
  +            # - sum both numbers on stack
               #   (prints to stderr 1st time since there's only 1)
   ?           # - read next line, push to stack as number
    z          # - push size of stack
     2         # - push 2
      =a       # - if stack size = 2, ? yielded something, so recurse
               # - otherwise end macro (implicit)
0              # push 0 (accumulator)
         d     # duplicate macro before storing it
            x  # Call macro
             p # The sum should be on the stack now, so print it

4

সিজেম , 5 বাইট

q~]1b

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

কিভাবে এটা কাজ করে

q     e# Read all input from STDIN.
 ~    e# Evaluate that input, pushing several integers.
  ]   e# Wrap the entire stack in an array.
   1b e# Convert from base 1 to integer.
      e# :+ (reduce by sum) would work as well, but 1b handles empty arrays.

1bযোগফলগুলি কীভাবে হয় ?
এওসোলিং ফলের

ডিজিট-টু-ইন্টিজার রূপান্তরকরণের জন্য সিজেএমের কোনও প্রমিত প্রতিনিধিত্বের প্রয়োজন হয় না; [<x> <y> <z> <w>]<b>bকেবলমাত্র বাক্স + বী + বিজে + ডাব্লু গণনা করে । খ = 1 হলে এটি x + y + z + w দেয়
ডেনিস

4

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

lambda n:sum(map(int,open(n)))

পাইথনে, ফাইলগুলি দিয়ে খোলা হয় open('filename') (স্পষ্টতই) । এগুলি অবশ্য পুনরাবৃত্ত হয়। প্রতিবার আপনি যখন ফাইলটি পুনরাবৃত্তি করবেন তখন আপনি পরবর্তী লাইনটি পাবেন। সুতরাং মানচিত্র প্রতিটি তালিকার উপরে কল করে কল করেint করে এবং তারপরে ফলাফলের তালিকাটি যোগ করে।

ইনপুট হিসাবে ফাইলের নাম সহ কল ​​করুন। (অর্থাতf('numbers.txt') )

map(int, open(n))তালিকার বোঝার পরিবর্তে 8 বাইট সংরক্ষণ করা হয়েছে । আসল কোড:

lambda n:sum([int(i)for i in open(n)]) 

1
আমি বিশ্বাস করি যে আপনি 'ওপেন (0)' কল করে স্ট্যান্ডার্ড ইনপুট দিয়েও এটি করতে পারেন। নিশ্চিত না যে এটি আপনার উত্তর সংক্ষিপ্ত করতে ব্যবহৃত হতে পারে।
কোল

@ কোল ড্যানিসের ইতিমধ্যে এর সমাধান রয়েছে, তাই আমি আমার উত্তরটি এভাবে রেখে দেব।
আর

আমার ভুল, সে সম্পর্কে দুঃখিত! আপনার উত্তরে আসার আগে আমি পুরো পথটি পড়িনি।
কোলে

@ কল এটি ঠিক আছে, আমার আপত্তি নেই।
Rɪᴋᴇʀ

4

গণিত, 19 বাইট

গণিতের নোটবুক পরিবেশটি ধরে নিই।

Tr[#&@@@Import@"a"]

ইনপুটটি কোনও ফাইলে থাকবে বলে আশা করে a


এটি একটি ক্রেজি ভাষা :)

4
@ ললেবিক সাধারণ লোকেরা এটিকে খুব সহজেই Total @ Flatten @ Import @ "a"বা এমনকি হিসাবে খুব সহজেই লিখতেন "a" // Import // Flatten // Total। ;)
মার্টিন ইন্ডার

Tr[#&@@@Import@#]&অনুমতি দেওয়া হবে না ?
নেজিনিসিস

4

জেলি , 9 8 বাইট

ƈFпFỴVS

STDIN আসলে জেলির জিনিস নয় ...

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

কিভাবে এটা কাজ করে

ƈFпFỴVS  Main link. No arguments. Implicit argument: 0

  п      While loop; while the condition returns a truthy value, execute the body
          and set the return value to the result. Collect all results (including 0,
          the initial return value) in an array and return that array.
ƈ           Body: Yield a character from STDIN or [] if the input is exhausted.
 F          Condition: Flatten, mapping 0 to [], '0' to "0", and [] to [] (falsy).
    F     Flatten the result.
     Ỵ    Split at newlines.
      V   Evaluate the resulting strings.
       S  Take the sum.

1
দ্বিতীয়টি স্বচ্ছতার জন্য পাশাপাশি Fহতে পারে
এরিক আউটগল্ফার


4

খাঁটি বাশ, 30

read -d_ b
echo $[${b//'
'/+}]

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

  • readএর ইনপুট ফাইলটি ভেরিয়েবলের মধ্যে যায় b-d_বলে readযে লাইন বিভেদক হল_ পরিবর্তেnewline
  • ${b//'newline'/+} নতুন লাইনে প্রতিস্থাপন করে b সাথে+
  • echo $[ ... ] গাণিতিকভাবে ফলাফল প্রকাশের মূল্যায়ন করে এবং এটি আউটপুট করে।

+1 খুব সুন্দর। একটি ইনপুট ফাইলের পেছনের নতুন লাইনটিও কি পড়তে হবে? আমি জিজ্ঞাসা করছি কারণ এটি যদি '+' দ্বারা প্রতিস্থাপন করা হয় তবে $[]বিভাগটি '+' এর পিছনে ত্রুটি ঘটবে।
শৈশুমারা

@seshoumara এটি readলাইন ডেলিমেটারটি ওভাররাইড করা সত্ত্বেও, চূড়ান্তভাবে অনুমান করা নতুন লাইনের বিষয়টি বাতিল করবে বলে মনে হয় _। এটি সম্ভবত একটি সতর্কতা read, তবে এটি এই পরিস্থিতির জন্য ভাল কাজ করে।
ডিজিটাল ট্রমা

খাঁটি বাশ সমাধান দেখে আমি সর্বদা খুশি।

3

ভিম, 16 বাইট / কীস্ট্রোক

:%s/\n/+
C<C-r>=<C-r>"<C-h>

যেহেতু ভি পিছনের দিকে সামঞ্জস্যপূর্ণ তাই আপনি এটি অনলাইনে চেষ্টা করতে পারেন !


এটি হয় কোনও স্ট্যান্ডার্ড থেকে বা কোনও ফাইল থেকে পড়া?

হ্যাঁ, ভিমকে অনুমতি দেওয়া হতে পারে না ... :(
ক্যালকুলেটরফলাইন


3

jq , 5 বাইট

add, এবং কমান্ড লাইন পতাকা -s

উদাহরণ স্বরূপ:

% echo "1\n2\n3\n4\n5" | jq -s add
15

6 বাইট । যেহেতু -saddকাজ করবে না, স্থান গণনা করুন।
এজিসি

@agc আমি ভুল হলে আমাকে সংশোধন করুন তবে কোডটি নিজেই add(3 বাইট) এবং পতাকাটির জন্য আপনাকে 2 বাইট যুক্ত করতে হবে -s। স্থানটি কোড বা পতাকা হিসাবে গণনা করে না: এটি ভাষায় ব্যবহৃত কমান্ড লাইন বিভাজক।
21 শে

1
@ থিসগুই, আচ্ছা -sপতাকাটি " --slurp " এর জন্য সংক্ষিপ্ত , (পুরো ইনপুট স্ট্রিমটি একটি বড় অ্যারেতে পড়ুন এবং কেবল একবার ফিল্টার চালান), যা jqইনপুট ডেটা কীভাবে ব্যাখ্যা করে এবং কীভাবে কোড চালায় উভয়ই পরিবর্তিত করে । মনে হচ্ছে না -eযে sed, যা নিছক বলে sedযে পরবর্তী স্ট্রিং কোড। -sআরো একটি অংশ ভালো হয় jqনিজেই ভাষা, এবং সেইজন্য যে 6 ষ্ঠ বাইট স্থান খুব হবে।
এজিসি


3

ডিসি, 22

[pq]sq0[?z2>q+lmx]dsmx

এটি হওয়া উচিত তার চেয়ে বেশি দীর্ঘ বলে মনে হয় তবে ফাইলটির সমাপ্তি কখন পৌঁছেছে তা সিদ্ধান্ত নেওয়া জটিল। এটি করার একমাত্র উপায় আমি এর পরে স্ট্যাকের দৈর্ঘ্য পরীক্ষা করে দেখি? কমান্ডের ।

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

[pq]                    # macro to `p`rint top-of-stack, then `q`uit the program
    sq                  # save the above macro in the `q` register
      0                 # push `0` to the stack.  Each input number is added to this (stack accumulator)
       [         ]      # macro to:
        ?               # - read line of input
         z              # - push stack length to stack
          2             # - push 2 to the stack
           >q           # - if 2 > stack length then invoke macro stored in `q` register
             +          # - add input to stack accumulator
              lmx       # - load macro stored in `m` register and execute it
                  d     # duplicate macro
                   sm   # store in register `m`
                     x  # execute macro

নোট করুন ম্যাক্রোকে mপুনরাবৃত্তভাবে বলা হয়। আধুনিক dcএই ধরণের জিনিসটির জন্য লেজ পুনরাবৃত্তি প্রয়োগ করে, তাই স্ট্যাকটি উপচে পড়া নিয়ে কোনও উদ্বেগ হওয়া উচিত নয়।


পিপিসিজিতে আপনাকে স্বাগতম! দয়া করে মনে রাখবেন যে পর্যাপ্ত ব্যাখ্যা না থাকলে এটি নিম্ন মানের পোস্ট ফিল্টারটি দিয়ে যাবে
ম্যাথু রোহ

@ সিআইজিএসইজিভি-তে কোনও স্বাগত প্রয়োজন নেই - আমি এখানে কিছুক্ষণ রয়েছি ;-)। হ্যাঁ, আপনি মন্তব্য করার সময় আমি আমার ব্যাখ্যাটি লিখছিলাম। সম্পাদনা দেখুন।
ডিজিটাল ট্রমা

1
ম্যাক্রোটি সংরক্ষণের আগে নকল করার কৌশলটির জন্য আমি আপনার কাছে বাইট .ণী।
ব্রায়ান ম্যাকচ্যাচন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.