আপনার ভাষায় ট্রান্সপাইল করুন #


25

সম্পর্কিত ; একটি; # দোভাষী এবং জেনারেট করুন; # কোড

;# - একটি ঘূর্ণি গাইড

এটি দুটি কমান্ড সহ একটি সহজ ভাষা। এর একমাত্র ডেটা স্ট্রাকচার হ'ল একটি সংযোজক, যা 0 থেকে শুরু করা হয়েছে।

  1. ; সঞ্চালক বৃদ্ধি

  2. #সংগ্রহকারী মডুলোর 127 এর মান গণনা করুন এবং সংশ্লিষ্ট ASCII অক্ষরটি মুদ্রণ করুন। তারপরে, সংযোজকটিকে 0 এ পুনরায় সেট করুন।

উত্স কোডে অতিরিক্ত অক্ষর থাকতে পারে (মুদ্রণযোগ্য এএসসিআইআই + হোয়াইটস্পেস), তবে এগুলিকে মন্তব্য হিসাবে বিবেচনা করা হবে এবং প্রোগ্রামের প্রয়োগে কোনও প্রভাব নেই।

চ্যালেঞ্জ

যেহেতু বেশিরভাগ কম্পিউটারগুলি ;#পূর্বনির্ধারিতভাবে আসে না , তাই ;#কোডটি ভিন্ন ভাষায় রূপান্তর করতে পারে এমন একটি সরঞ্জাম ব্যবহার করা খুব কার্যকর । এই চ্যালেঞ্জে, আপনি এটি সম্পাদন করার জন্য একটি প্রোগ্রাম লিখবেন।

ইনপুট

কিছু ;#উত্স কোড, আর্গুমেন্ট বা STDIN এর মাধ্যমে নেওয়া। এই উত্স কোডটিতে (মন্তব্য) ;বা বাদে অন্য কোনও অক্ষর থাকতে পারে #

আউটপুট

কোড, আপনার জমা হিসাবে একই ভাষায় কোড, যা কার্যকর করা হলে, মূল ;#কোড হিসাবে একই স্ট্রিংটি মুদ্রণ / প্রদান করে । এই ফলাফল কোডটি আপনার স্ট্রিংয়ের জন্য আরও সুবিধাজনক হলে লক্ষ্য স্ট্রিংয়ের পরে একটি ট্রিলিং নিউলাইন আউটপুট দিতে পারে।

নোট

একটি জিনিস সন্ধানের জন্য সন্ধানের সিকোয়েন্সগুলি যেমন কোড যা ব্যাকস্ল্যাশগুলি মুদ্রণ করে বা উদ্ধৃতি চিহ্নগুলি প্রিন্ট করে is এছাড়াও জন্য চক্ষু মেলিয়া ;#কোডটি বিষয় আছে যা কীওয়ার্ড বা আপনার ভাষায় কমান্ড মত চেহারা থাকতে পারে।

অতিরিক্ত বিধিনিষেধ

সমস্ত প্রোগ্রাম অবশ্যই শেষ করতে হবে (আমি সাধারণত এটি একটি ডিফল্ট হিসাবে বিবেচনা করি তবে কেউ এটি সম্পর্কে জিজ্ঞাসা করেছিল তাই আমি এটি এখানে উল্লেখ করছি)।

উদাহরণ

input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
output (python): print(";#")
input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
output (element): \'`

34
আমার কম্পিউটারটি পুনরায় ;#ইনস্টল করা নিয়ে এসেছিল ...
প্রোগ্রামার

1
আরেকটা? কেন?
২৪ শে

প্রোগ্রামটি কার্যকর করা বন্ধ করতে হবে? এছাড়াও, এটি কি আসল কোডের পরে অসীম কোনও নোটকে মুদ্রণ করতে পারে?
সম্পূর্ণরূপে

2
@ টোটালিহুমান আমি বলতে চাই যে সমস্ত প্রোগ্রাম অবশ্যই অবশেষে থামবে।
PhiNotPi

1
দয়া করে আমাদের দ্বারা একটি পরীক্ষা ক্ষেত্রে যেখানে ইনপুট একটি অক্ষর (অথবা অক্ষর) যে রয়েছে পেতে পারে ;বা #?
রাস্তায়

উত্তর:


7

পাইথন 2 , 76 69 বাইট

কোড

ইনপুট চারপাশে উদ্ধৃতি।

for y in input('print').split("#")[:-1]:print`chr(y.count(";")%127)`,

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

ব্যাখ্যা

আউটপুট প্রথম অংশ মূলত ইনপুট দ্বারা সম্পন্ন করা হয় ব্যবহার করে input('print')। আমরা হ্যাশট্যাগগুলিতে ইনপুট বিভক্ত করি এবং শেষ উপাদানটি বাতিল করি। আমরা অর্ডের উপস্থাপনা (y% 127) মুদ্রণ করি , যেখানে y সেমিকোলনের সংখ্যার সংখ্যা। ,এটি একটি নতুন লাইন প্রিন্ট না করে তা নিশ্চিত করার জন্য আমরা মুদ্রণের শেষে সংযোজন করি ।

এটি প্রোগ্রামের জন্য নিম্নলিখিত পাইথন কোডটি Hello, World!দেবে:

print'H' 'e' 'l' 'l' 'o' ',' ' ' 'W' 'o' 'r' 'l' 'd' '!'

যা অনলাইনে চেষ্টা করা যেতে পারে ।


5

ব্রেনফাক , 126 বাইট

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

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

আউটপুট ;#65536 অক্ষরের বেশি হলে আউটপুট প্রোগ্রাম টিআইও বাস্তবায়নে ব্যর্থ হবে । আমি একটি 130-বাইট সংস্করণ আউটপুট তৈরী [+]পরিবর্তে <, এই সমস্যা এড়ানো:

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

ব্যাখ্যা

+++[->+++++<]>[->++++>+++<<]        initialize tape with 60 and 45
,[                                  for each input byte:
  +<++++++[-<++++>>------<]         subtract 35 (#) from byte
  >[<]<<[                           if byte was #
         >>>>>[--<--.++>]           output + (43) a number of times equal to accumulator
         <+.-<.<<<<                 output . (46) and < (60)
  ]
  >[->>-<<]>>                       subtract 24 from what's left of byte
  [[-]<]                            check difference and clear if nonzero
  >[                                if byte was originally 59 (;)
   >>++++[-->]<[<]                  add 4 to accumulator cell, then subtract 2 if nonzero. Since BF cells are mod 256, this creates an accumulator mod 127.
  ]
,]

5

হোয়াইটস্পেস, 291 বাইট

NSSTTNNSTNNSTNNSTTNNSSTSNSSNSNSTNTSTTTSSSTSSSTTNTSSTSNSNTSSSSNSSSTTSSSNTSSTNTSSSTNNSNTSNNSSSSSNSNNNSTSSNNSTSTNNSTSTNNSTSNNSTTNNSTSNNSTNNSTSTNNSTTNNSTNNSTNNSNTTNNSSSSTNNSTSSNNSTSNNSTTNNSTSNNSTSSNNSNTSNNSSTNSSSTSTSNTNSSNTNNSSSSNNSTNNSTNNSSNSSSTSSSSSNTNSSNTNNSSSTNNSTSNNSTSNNSSSNSSSTSSTNTNSSNTN

স্থান দ্বারা S, ট্যাব দ্বারা টি এবং একটি নতুন লাইনের মাধ্যমে এন প্রতিস্থাপন করুন।

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

early:
    call S
    call S
    call N
start:
    push  0
    dup
    ichr
    get
    push  35
    sub
    dup
    jz    hash
    push  24
    sub
    jz    semi
    jmp   start
hash:
    pop
    call SSS
    call TTT
    call TTT
    call T
    call N
    call T
    call S
    call TTT
    call N
    call S
    call S
    jmp   early
semi:
    call SSS
    call T
    call N
    call T
    call SSS
    jmp   start
N:
    push 10
    pchr
    ret
SSS:
    call S
    call S
S:
    push 32
    pchr
    ret
TTT:
    call T
    call T
T:
    push 9
    pchr
    ret

প্রোগ্রামটির দ্বারা উত্পন্ন কোডটি দেখে মনে হচ্ছে:

push  0
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  1
add
push  127
mod
pchr
push  0
push  1
add
...

আমার জন্য কাজ করে না। হাস্কেলের লিখিত মূল শ্বেত স্পেস ইন্টারপ্রেটারে, সাইন বিটটি কোনও সংখ্যা থেকে বাদ দেওয়া যাবে না, সুতরাং "এসএসএন" শূন্যকে ঠেলে দেওয়ার কোনও বৈধ উপায় নয়।
aschepler

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

4

ভি , 19 20 28 বাইট

বাগফিক্স, #শেষে না থাকলে ভেঙে গেছে

বাগফিক্স, বাস্তবায়িত হয়েছে mod 127

Í;û127}
éiA0Í#/0
ò/;
x

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

উত্পন্ন কোড চেষ্টা করুন

ব্যাখ্যা:

Í;û127}                            ' Delete runs of 127 `;`s (mod 127)
éi                                 ' Insert an `i` in front of input
  A<C-v><esc>0<esc>                ' Append <esc>0 to input
                   Í#/<C-v><C-v>0  ' Replace all `#` with `<C-v>0`
ò                                  ' Recursively
 /;                                ' Go to the next `;`
<C-a>                              ' Increment the next number come across

ভি তে, সন্নিবেশ মোডে, কোনও এএসসিআইআই অক্ষর ব্যবহার করে কোড দ্বারা সন্নিবেশ করা যেতে পারে <C-v><Code>। ভী কোড সব প্রতিস্থাপন #সঙ্গে <C-v>0, যেখানে শূন্য প্রতি একটি সিউডো-সঁচায়ক হয় #। প্রত্যেকটি #সঞ্চয়ের পুনঃনির্ধারণ 0 করে তাই প্রতি প্রতি এক জরিমানা কাজ করে। তারপরে কোডটি পাওয়া প্রতিটি সেমিকোলনের জন্য একটি ইনক্রিমেন্ট করে, যা এটি সন্ধান করে পরবর্তী সংখ্যাটি বৃদ্ধি করে, যা পরবর্তী সংযোজক হবে। 0শেষ যোগ যাতে নির্দেশ ব্যর্থ না ;একটি অনুসরণ ছাড়া গুলি #

Hexdump:

00000000: e969 4116 1b30 1bcd 232f 1616 300a f22f  .iA..0..#/..0../
00000010: 3b0a 7801                                ;.x.

3

05 এ বি 1 ই , 20 19 18 16 বাইট

-1 আদনানকে
ধন্যবাদ -2 কারুসোমপুটিং
-2 কেভিন ক্রুইজসেনকে ধন্যবাদ

'#¡¨vy';¢ƵQ%„çJJ

এটি অনলাইন চেষ্টা করুন! (সম্পাদিত 05AB1E কোডের আউটপুট অন্তর্ভুক্ত)

'#¡              # Split on #
   ¨             # remove the last element
    vy           # For each...
      ';¢        #   count the number of ;s
         ƵQ%     #   Mod by 127
            „çJ  #   Push çJ („çJ should work, but it doesn't for some reason)
               J # Join stack and output implicitly

';¢হতে পারে g, žy128 পুশ করে, কোনওভাবে কাজ করতে পারে এবং কেন কেবল পুরো শব্দটি বানান করে তা উদ্ধৃতি দিয়ে চারপাশে ঘিরে না?
ম্যাজিক অক্টোপাস উরন 21

1
আমি ';¢incase ছাড়াও অন্যান্য অক্ষর আছে ব্যবহার করতে হবে ;žy<হিসাবে একই 127। উদ্ধৃতি দ্বারা বেষ্টিত শব্দটি মুদ্রণের সাথে কোনও অক্ষরের একটি উদ্ধৃতি হলে ভাঙ্গা হবে।
রিলে

@ কারাসোকম্পুটিং আমি আপনাকে পিং করতে ভুলে গিয়েছিলাম ...
রিলে

1
@ কারাসোকম্পিউটিং এবং রিলে: 127 এরƵQ একটি সংকোচিত সংস্করণ ।
আদনান

@ আদনান কেন / কিভাবে?
যাদু অক্টোপাস উরন

2

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

lambda s:"print"+`''.join(chr(x.count(';')%127)for x in s.split('#')[:-1])`

এটি অনলাইন চেষ্টা করুন! (পরিবহন পাইথন কোডটি কার্যকর করা থেকে আউটপুট অন্তর্ভুক্ত)

অনেকগুলি বাইটের জন্য ওভিএসকে ধন্যবাদ!

ব্যাখ্যা

এই প্রোগ্রামটি # স্থানান্তর করে; # টি ( s.split('#')[:-1]) -এ বিভক্ত হয়ে কোড , প্রতিটি অংশ মোড 127 ( x.count(';')%127for x in ...) এ সেমিকোলনের সংখ্যা গণনা করে এবং এটিকে সংশ্লিষ্ট এএসসিআইআই অক্ষর ( chr(...)) এ রূপান্তর করে । তারপরে তালিকাটি সংক্ষিপ্ত আকারে তৈরি করা হয় ( ''.join(...)), স্ট্রিংটির একটি পাইথন উপস্থাপনায় রূপান্তরিত হয় (ব্যাকটিক্স) এবং প্রিন্টিং স্ট্রিংগুলির জন্য একটি কঙ্কাল পাইথন প্রোগ্রামে প্রবেশ করানো হয় ( "print"+...)।


2

জেলি ,  25 24  16 বাইট

ṣ”#Ṗċ€”;%127;€”Ọ

একটি সম্পূর্ণ প্রোগ্রাম মুদ্রণের সমতুল্য জেলি কোড (একাত্ত্বিক লিঙ্ক হিসাবে এটি মিশ্র প্রকারের তালিকার একটি তালিকা ফেরত দেয়)।

প্রথম উদাহরণটি অনলাইনে চেষ্টা করে দেখুন! যা এই প্রোগ্রামটি দেয়

কিভাবে?

;S এর মধ্যে প্রতিটি রানের মধ্যে #s গণনা করে প্রতিটি মডুলো 127 নেয় এবং প্রতিটিের পরে অধ্যক্ষ নির্দেশ, মোনাদিক পরমাণুতে একটি কাস্ট যোগ করে।

জেলি নিখুঁতভাবে প্রতিটি মান STDOUT এ পাইপ করে যেমন এটি কোনও প্রোগ্রামের মধ্য দিয়ে চলে যেমন 72Ọ101Ọ108Ọ108Ọ111Ọ44Ọ32Ọ119Ọ111Ọ114Ọ108Ọ100Ọ33Ọমুদ্রণ করবে Hello, world!

ṣ”#Ṗċ€”;%127;€”Ọ - Main link: list of characters
 ”#              - literal '#'
ṣ                - split the result at #s
   Ṗ             - pop (remove the last result, list of trailing non-# characters)
      ”;         - literal ';'
    ċ€           - count for €ach
        %127     - modulo 127 (vectorises)
              ”Ọ - literal 'Ọ' (Jelly's cast to ordinal monadic atom)
            ;€   - concatenate for €ach - making a list of lists like [[72,'Ọ],[101,'Ọ'],...]
                 - implicit print (this smashes, printing something like: 72Ọ101Ọ...)

ইনপুট সম্পর্কিত একটি নোট: জেলি পাইথন ফর্ম্যাটে স্ট্রিং ইনপুট নেয়। খালি প্রোগ্রাম হিসাবে ইনপুট হতে পারে "", এবং হ্যাশ শুধুমাত্র প্রোগ্রাম "#", "##"ইত্যাদি অন্যান্য ম্যানিপুলেশন ইনপুট ব্যাকস্ল্যাশ এবং কোট ধারণকারী জন্য প্রয়োজন হতে পারে।


2

কিউবিকভাবে , 138 বাইট

+1/1+54@6:5+1/1+5@6/1+52@6:4/1+5@6:1/1+54@6:4/1+5@6:5+2/1+4@6(~-61/1=7&6+5/1+51=7?6{+3/1+5@6}:5+3/1+3=7?6{+52@6:5+1@6-1@6+1@6:5+2/1+4@6})

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

দ্রষ্টব্য: এটি টিআইওতে কাজ করার জন্য আপনার &6সাথে প্রতিস্থাপনের প্রয়োজন হতে পারে ?6&&6যদিও ভাষা বিশেষে হয়।

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

+1/1+54@6        Output 'R'
:5+1/1+5@6       Output '3'
/1+52@6          Output 'D'
:4/1+5@6         Output '1'
:1/1+54@6        Output 'R'
:4/1+5@6         Output '1'
:5+2/1+4@6       Output '+'
(                Loop indefinitely
  ~                Get next character
  -61/1=7&6        If input is -1 (EOF), exit program
  +5/1+51=7?6{     If input is `;`
    +3/1+5@6         Output '0'
  }                End if
  :5+3/1+3=7?6{   If input is '#'
    +52@6            Output '@'
    :5+1@6           Output '6'
    -1@6             Output '-'
    +1@6             Output '6'
    :5+2/1+4@6       Output '+'
  }                End if
)                End loop

আউটপুট প্রোগ্রাম:

R3D1R1           Set top face to 1
+00...           Add top face to notepad, aka increment notepad
@6               Output notepad as character
-6               Set notepad to 0
...

একটি সংরক্ষণ করুন অনেক থেকে আর্গুমেন্ট সরানোর বাইটের @6, %6এবং -6। অন্তর্নিহিতভাবে কল করার পরে পূর্বে কিছু না করা আদেশগুলি এখন নোটপ্যাড ব্যবহার করে use তাই @একই হিসাবে @6, %হিসাবে একই %6, ইত্যাদি
এমডি XF

1

জাভাস্ক্রিপ্ট (ES6), 101 বাইট

s=>`_=>'${s.replace(/[^#;]/g,``)}'.replace(/;*(#|$)/g,(l,c)=>c&&String.fromCharCode(~-l.length%127))`

একটি ইনপুট স্ট্রিং দেওয়া হয়েছে, সমস্ত অপ্রয়োজনীয় অক্ষর মুছে ফেলা হয়, তারপরে নিম্নলিখিত ফাংশনের উত্স প্রদান করে:

_=>'...'.replace(/;*(#|$)/g,(l,c)=>c&&String.fromCharCode(~-l.length%127))

যেখানে ...পরিষ্কার ;#উত্স প্রতিনিধিত্ব করে ।


1

সি, 98 96 99 98 97 বাইট

+3 বাইট কারণ আমি ভুলে গে সি ব্যাখ্যা করা হয় না :(

c,a;f(){printf("f(){puts(\"");for(;~c;c=getchar())c==59?a++:c==35?a=!printf(&a):a;puts("\");}");}

সাথে চলছে:

echo ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#" | ./a.out

মুদ্রণ করবে:

f(){puts("Hello, World!");}

2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#উত্পাদন করে f(){puts(""");}, যা অবৈধ। চ্যালেঞ্জটি বিশেষভাবে বলেছে "একটি বিষয় যাচাই করার জন্য সন্ধান করা উচিত, যেমন কোড যা ব্যাকস্ল্যাশগুলি মুদ্রণ করে বা উদ্ধৃতি চিহ্ন প্রিন্ট করে।"
এইচডিভি

@ এইচভিডি ফিক্সিং ....
এমডি এক্সএফ

1

জেলি , 26 বাইট

”‘x
f”;L%127Ç;“Ọø”
ṣ”#Ç€ṙ-

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

এবং যে জেলি কোড এখানে চেষ্টা করুন!

ṣ”#Ç€ṙ-      Main link, input is a string of ";;;;;;#lala;;;;;;;;;#"
ṣ”#          Split input on char #
   ǀ        Call helper link 1 for each segment
     ṙ-      Rotate returns 1 to the right (SPLIT introduces an empty element which is moved up front)

f”;L%127Ç;“Ọø”  Helper link 1, determines the number of increments
f”;             Throw out all but semicolons
   L%127        Take the count mod 127
        Ç       Call helper 2
         ;“Ọø”  Add a Jelly link that prints characters and splits print statements

”‘x             Helper 2, receives the count of ;'s
”‘              Return the character ‘ (Jelly's increment command
  x             Once for each ; in the input

জেলি আউটপুট কোডের মতো হয়ে যায় Ọø‘‘‘‘‘‘‘‘‘‘‘‘‘Ọø‘‘‘‘‘‘‘‘‘‘Ọøযা chr (13) + chr (10) মুদ্রণ করে


ব্যবহারের জন্য অদ্ভুত উদাহরণ (কেবলমাত্র সাদা স্থানের মুদ্রণ) যা আমাকে বিভ্রান্ত করেছিল।
জোনাথন অ্যালান

1
@ জোনাথান অ্যালান টিআইও-র লিঙ্কগুলির সাথে উদাহরণ যুক্ত করেছেন।
স্টেইনবার্গ

1

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

for(;~$c=$argn[$i++];)echo[Z=>'$n++;',B=>'echo~$n=~chr($n%127);'][a^$c];

1

> <>, 106 81 77 বাইট

> <> (ফিশ) এ এটি আমার প্রথম গল্ফ! আমি বলতে একটি সুন্দর আকর্ষণীয় ভাষা। অনেক মজা!

0n01.
>i:1+?!v:";"=?v"#"=?v
^ ;o";"<   .37<
^oo"1+"
^oooooooo'"~"1+%o0' <

পুকুরে স্বাগতম! আপনি খাটো করতে পারেন i:1+?!মধ্যে i:0(?, এবং আমি আপনি কয়েক বাইট বাঁচাতে পারে মত যদি আপনি স্ট্যাক ফলাফলের নির্মাণ এবং এটি আউটপুট ইনপুট শেষে অপেক্ষা বোধ। মানে, এটি oঅনেকগুলি;)
হারুন

1

সি # 169 বাইটস

Golfed:

class P{static int Main(string[] args){var r="Console.Write(";foreach(var y in args[0].Split('#')){r+=(char)(-1+y.Split(';').Length%127);}System.Console.Write(r+");");}}

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

class P
{
    static int Main(string[] args)
    {
        var r="Console.Write(\"";
        foreach (var y in args[0].Split('#'))
        {
            r +=(char)(-1+y.Split(';').Length% 127);
        }
        System.Console.Write(r+"\");");
    }
}


1

ব্র্যাচল্যাগ , 33 বাইট

{";"∧"+₁"|"#"∧"%₁₂₇g~ạw0"}ˢ;"0"↔c

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

এই মুহূর্তে এটি ব্যাখ্যা করতে কিছুটা ক্লান্ত বোধ করছেন, যদি কেউ এটি দেখে এবং অবাক হয়ে যায় যে এটি কীভাবে কাজ করে তবে আমাকে মনে করিয়ে দেওয়ার জন্য একটি মন্তব্য ফেলে দিন।


1

ম্যাথগল্ফ , 17 বাইট

⌡(¶{gÉ'8=£♣(%$''\

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

ব্যাখ্যা

⌡                      decrement twice
 (                     decrement
                       this transforms ";;;#;;#" -> "888 88 "
  ¶                    split string on spaces
   {                   foreach...
    gÉ                 filter using next 3 characters
      '8               push single character "8"
        =              pop(a, b), push(a==b)
                       this filters out all non-";"
         £             length of array/string with pop
          ♣            push 128
           (           decrement
            %          modulo
             $         pop(a), push ord(a) or char(a) (gets character with code)
              ''       push single character "'"
                \      swap top elements

যেহেতু যে কোনও অক্ষর স্ট্যাকের (এবং এভাবে আউটপুট) ব্যবহার করে রাখা যেতে পারে '<char>, এটি এই জাতীয় কোড ব্লকের ক্রমকে আউটপুট দেয়।


কীভাবে চ্যাট তৈরি করবেন তা ভুলে গেছেন .. যাইহোক, `` (স্ট্যাকের শীর্ষস্থানীয় ব্যতীত সমস্ত কিছুই ফেলে দিন) বর্তমানে বাগড হয়েছে। এটি পাইথন ফাইলনটফাউন্ডএরার দেয়।
কেভিন ক্রুইজসেন

পুনঃটুইট করুন দুটি স্থানের অক্ষর এড়াতে আমি কোডের পৃষ্ঠায় সেই অক্ষরটি পরিবর্তন করেছি। নতুন চরিত্রটি হ'ল Þ
ম্যাক্সবি

হ্যাঁ, @ জোকিং প্রকৃতপক্ষে বলেছিলেন যে এটিতে পরিবর্তিত হয়েছিল Þ। ( আমি যে দস্তাবেজগুলি ব্যবহার করি তা এখনও পুরানো মানটি উল্লেখ করে ))
কেভিন ক্রুইজসেন

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

1

এমএটিএল , 32 28 বাইট

35lF4$Yb"@g59=z]xv127\!&D99h

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

strsplitঅটোমেটন-টাইপ প্রোগ্রামের চেয়ে সম্পূর্ণ ভিন্ন পদ্ধতির উপর ভিত্তি করে ।

      Yb % strsplit
    4$   %  with 4 inputs, namely:
35       %   Split on '#'
  lF     %   Do not (F) collapse delimiters (l).
         %   And of course the implicit program input.

"@g    ] % Loop over strings, convert each to a normal char array
   59=z  % How many equal to 59 ';'?

xv!127\  % Delete last element, concatenate and flip to horizontal, mod 127
&D       % Convert to MATL representation
  99h    % Append a 'c' to output ASCII.

0

আসলে , 25 বাইট

'#@s⌠';@c7╙D@%⌡MdX$"♂cΣ"o

এটি অনলাইন চেষ্টা করুন! (প্রকৃত কোড পরিবহনের আউটপুট অন্তর্ভুক্ত)

ব্যাখ্যা:

'#@s⌠';@c7╙D@%⌡MdX$"♂cΣ"o
'#@s                       split on "#"
    ⌠';@c7╙D@%⌡M           for each chunk:
     ';@c                    count ";"s
         7╙D@%               mod by 127 (2**7-1)
                dX         discard last value
                  $        stringify
                   "♂cΣ"o  append "♂cΣ":
                    ♂c       convert each value to an ASCII character
                      Σ      concatenate


0

ফুরিয়ার, 32 বাইট

$(I~S{59}{`^`}S{35}{`%127a0`}&i)

ফোরাইডে চেষ্টা করে দেখুন!

এটি বেশ সহজ চ্যালেঞ্জ ছিল যেহেতু ফুরিয়ার মূলত একটি সুপারস্টার; #:

;# command > Fourier equivalent
; > ^ (Increment the accumulator)
# > %127a0 (Modulo accumulator by 127, output corresponding code point and set accumulator to zero)

0

সিজেম, 14 বাইট

q'#/);';fe=:c`

ব্যাখ্যা:

q               e# Read input
 '#/            e# Split on '#'
    );          e# Delete last element
      ';fe=     e# Count occurrences of ';' in each
           :c   e# Convert each to character (code point)
             `  e# Escape

0

এপিএল, 31 বাইট

{⍕'⎕UCS',⌽127|+/¨';'=⍵⊂⍨'#'=⍵}⌽

আউটপুট:

      ({⍕'⎕UCS',⌽127|+/¨';'=⍵⊂⍨'#'=⍵}⌽) ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#'
⎕UCS 59 35
      ⍝ evaluate the output
      ⍎({⍕'⎕UCS',⌽127|+/¨';'=⍵⊂⍨'#'=⍵}⌽) ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#'
;#

ব্যাখ্যা:

  • : ইনপুট বিপরীত
  • {... }: এই ফাংশন এ এটি পাস:
    • ⍵⊂⍨'#'=⍵: #স্ট্রিংয়ের প্রতিটিটিতে বিভাজন (প্রথম থেকেই, যার কারণে এটি প্রথমে বিপরীত করতে হয়েছিল)
    • +/¨';'=: ;প্রতিটি পার্টিশনে s গণনা করুন
    • 127|: মডুলো 127
    • : এটি আবার বিপরীত
    • '⎕UCS',: স্ট্রিংটি প্রিপেন্ড করুন ⎕UCSযা ইউনিকোড ফাংশন।
    • : স্ট্রিং প্রতিনিধিত্ব

আপনি STDOUT এর আসল আউটপুট একই হিসাবে সরাতে পারেন ।
অ্যাডম 25'17

0

রুবি , 47 + 1 = 48 বাইট

$_=gsub(/.*?#/){"$><<#{$&.count(?;)%127}.chr;"}

জন্য +1 বাইট -p

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

-30 বাইটস @ মান্যাটওয়ার্ককে ধন্যবাদ !


দুর্ভাগ্যবশত, এই না সঙ্গে চমৎকার খেলে "এই সোর্স কোড (মন্তব্য) অক্ষর ছাড়া অন্য থাকতে পারে ;বা #প্রয়োজন অংশ।"।
manatwork

@ মান্যাটওয়ার্ক ফিক্সড, পরে গল্ফায়ার তৈরি করবে।
পাভেল

রেগুলার এক্সপ্রেশন পরিবর্তন করতে যথেষ্ট ছিল /;+#//.*?#/এবং কোড ব্লক s.length-1s.count(?;)। বিটিডাব্লু, আপনার গণিতটিও ভুল, %যেমনটির চেয়ে বেশি অগ্রাধিকার রয়েছে , তেমন -হওয়া উচিত (s.length-1)%127। আর এ .gsub'র কোড ব্লক আপনার সাথে বন্দী গোষ্ঠীতে অ্যাক্সেস করতে পারবে $&, $1... তাই |s|কোড ব্লক প্যারামিটার সাধারণত সম্ভবপর হয়। আর স্ট্রিং ক্ষেপক stringifies: {"$><<#{$&.count(?;)%127}.chr;"}এটি অনলাইন চেষ্টা করুন!
manatwork

@ মান্যাটওয়ার্ক আপনাকে অনেক ধন্যবাদ! আমি মনে করি আপনার মন্তব্য আমার রুবি জ্ঞান দ্বিগুণ করেছে।
পাভেল

দেরি হয়ে গেছে, তবে কোড চ্যালেঞ্জটি সম্প্রতি যা-ই হোক না কেন একটি পরিবর্তিত উত্তরের দ্বারা ঝাঁপিয়ে পড়েছিল। সরাসরি gsubপরিবর্তন $_করে যার অর্থ আপনার এটি পুনরায় নিয়োগের দরকার নেই। যাইহোক, আপনার সর্বশেষের পরে মন্তব্য চরিত্র থাকলে আপনার সমস্যা রয়েছে #... এখানে দেখুন
মান কালি

0

পাইথ, 25 23 24 বাইট

j\\+"jk["mC%/d\;127Pcw\#

@ ফ্রাইআমএইজিগম্যানকে ধন্যবাদ +1 বাইটস

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

এমন অক্ষরগুলি পরিচালনা করে যা কেবলমাত্র 1-চর-স্ট্রিং ব্যবহার করে পালাতে হবে।

নমুনা আউটপুট:

jk[\"

jk[\H\e\l\l\o\,\ \W\o\r\l\d\!

ব্যবহার # অনুবাদক আমার


ইনপুটটিতে না থাকলে এটি কাজ করে না #, যেমন এটি মুদ্রণ করবে 0। আপনি এটির jkপরিবর্তে এটি ঠিক করতে পারেন s
FryAmTheEggman

0

সি, 150 বাইট

#include<stdio.h>
c;n=0;main(){puts("#include<stdio.h>\nmain(){");while(~(c=getchar()))c-35?c-59?:n++:(printf("putchar(%d);",n%127)&(n=0));puts("}");}

সম্প্রসারিত:

#include<stdio.h>
c;
n=0;
main(){
        puts("#include<stdio.h>\nmain(){");
        while( ~(
            c=getchar()
        ))
                c-35?
                        c-59?
                                :
                                n++
                        :
                        ( printf("putchar(%d);",n%127)
                        &(n=0))
                ;
        puts("}");
}

এটি একটি সম্পূর্ণ প্রোগ্রাম যা (হওয়া উচিত) সমাপ্ত, মন্তব্য উপেক্ষা এবং সর্বদা সঠিক আউটপুট কোড উত্পাদন করে। আমি EOF = -1 ধরেছি

জিসিসি ৪.৯.৪ সহ সংকলিত সিস্টেমরেস্ক-সিডি ৪.৯..6 এ পরীক্ষিত


0

braingasm , 40 বাইট

,[35-z["[127-s[127+.>]]<0*".]24-z[43.],]

বলতে হবে, এটি আশ্চর্যজনকভাবে সংক্ষিপ্ত।

,[                                    ,]     Read a byte until end of input
  35-                                          Subtract 35.
     z[                     ]                  If the result is zero,
       "[127-s[127+.>]]<0*".                     print the code for `#`.
                             24-               Subtract 24.
                                z[   ]         If the result is zero,
                                  43.            print the code for `;`

এর জন্য উত্পন্ন কোডটি ;হ'ল এক+ , যা বর্তমান ঘরকে বাড়িয়ে তোলে।

এর জন্য উত্পন্ন #কোডটিতে এক্কওয়ার্ড, ম্যানুয়াল মডিউল অপারেশন রয়েছে

[127-s[127+.>]]<0*
[             ]       While current cell is not zero
 127-                   Subtract 127
     s[      ]          If result is negative
       127+.              Add 127 again and print current cell
            >             Step to next cell to break the loop
               <0*      Step back to first cell and clear it

0

ব্রেনল্ফ , 55 বাইট

V#0VR&,l1-MvMR[R.#;e"+1"MM|.##e"@%+1~#"MMMMMM|$_vv]Rv&@

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

মূলত প্রতিস্থাপন ;সঙ্গে 1+, #সঙ্গে #~1+%@এবং প্রাক pends একটি সঙ্গে পুরো জিনিস 0কারণ কীটাণুজাতীয় +অপারেটর ডান এখন নষ্ট হয়ে গেছে।

1+ স্ট্যাকের শেষ আইটেমটিতে 1 টি যুক্ত করুন।

#~1+%@~(126) এর চরের মানকে ধাক্কা দেয় , 127 করতে 1 যুক্ত করে, স্ট্যাকের অন্যান্য আইটেমের সাথে মডুলাস, তারপরে পপ করুন এবং চর হিসাবে মুদ্রণ করুন।

ব্যাখ্যা

V#0VR&,l1-MvMR                         Implicit input of each char to stack
[R.#;e"+1"MM|.##e"@%+1~#"MMMMMM|$_vv]
Rv&@

V#0                                    Create stack2, push char value of 0
   VR                                  Create stack3, return to stack1
     &,                                Reverse stack
       l1-                             Push length of stack - 1
          MvMR                         Move length to stack2, switch to stack 2
                                       Move length to stack3, switch back to stack1
[R................................vv]  Do-While loop, will run l times
                                       where l is length of input
  .#;                                  Duplicate last item and push char value of semicolon
     e                                 Pop last 2 items, if they are equal..
      "+1"                             ..Push char values of +1 in that order
          MM                           ..Move last 2 items to stack2
            |                          endif
             .##                       Duplicate last item and push char value of hash
                e                      Pop last 2 items, if they are equal..
                 "@%+1~#"              ..Push char values of @%+1~# in that order
                         MMMMMM        ..Move last 6 chars to stack2
                               |       endif
                                $_     Silently pop last item
Rv                                     Switch to stack2
  &@                                   Greedy char print, print every item in stack as char

0

q / kdb +, 42 বাইট

সমাধান:

{-1_"c"$mod[;127](#:)@/:"#"vs x inter"#;"}

উদাহরণ:

মনে রাখবেন যে এটি একটি পরমাণু হওয়ার পরিবর্তে একটি উপাদানের তালিকা ,হিসাবে একটি তালিকা (বনাম পরমাণু) হিসাবে চিহ্নিত করতে ব্যবহৃত হয় "\""

q){-1_"c"$mod[;127](#:)@/:"#"vs x inter"#;"}";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#"
";#"
q){-1_"c"$mod[;127](#:)@/:"#"vs x inter"#;"}";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#"
,"\""

ব্যাখ্যা:

ইনপুট স্ট্রিং নিন, যা কিছু একটি #বা একটি নয় সেগুলি সরিয়ে ফেলুন ;, তালিকাগুলিতে তালিকায় বিভক্ত করুন #, প্রতিটি তালিকার উপাদানগুলির সংখ্যা গণনা করুন, ফলাফলের জন্য মোড 127 সম্পাদন করুন এবং একটি স্ট্রিংয়ে কাস্ট করুন:

{-1_"c"$mod[;127]count each"#"vs x inter"#;"} / ungolfed
{                                           } / lambda function
                                 x inter"#;"  / intersection of input and ';#' to clear out any 'comments'
                           "#"vs              / split string on hash
                 count each                   / length of each sub-list
        mod[;127]                             / 127 modulo result (vectorised)
    "c"$                                      / cast back to string
 -1_                                          / drop last character (assuming terminated string)

নোট:

  • ধরে নিই যে একটি দ্বারা ইনপুট বন্ধ করা হয়েছে #, অন্যথায় শেষ অংশটি ভুলক্রমে দ্বারা বাদ দেওয়া হবে-1_
  • যদি ইনপুটটি কেবল ধারণের গ্যারান্টিযুক্ত হয় তবে 10 বাইট সংক্ষিপ্ত হতে পারে ;#

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