লিথপ ট্রান্টলেটর


28

আমার বন্ধুটি অন্য দিন একটি লিস্প অনুবাদক তৈরি করেছে, তার অর্থ এটি স্ট্রিং নিয়েছে এবং এস => ম এবং এস => থিতে রূপান্তরিত হয়েছে। এটি বেশ দীর্ঘ ছিল এবং আমি ভেবেছিলাম যে এটি গল্ফ করা যেতে পারে।

কাজটি হ'ল এমন একটি প্রোগ্রাম / ফাংশন তৈরি করা যা কোনও ইনপুট স্ট্রিং নেয়, লিস্পে অনুবাদ করে স্ট্রিং আউটপুট করে takes

পরীক্ষা ক্ষেত্রে

Sam and Sally like Sheep        Tham and Thally like Thheep
Sally likes sausages            Thally liketh thauthageth
Sally sells seashells           Thally thellth theathhellth

মনে রাখবেন যে এইচটি সমস্ত সময় পুনরাবৃত্তি হয়ে যায় তার কোনও ব্যাপার নয়

এটি কোড গল্ফ তাই সংক্ষিপ্ত উত্তর জেতে


13
আমি আকাঙ্ক্ষিত সবাই পরিবর্তন হবে বাইট তাদের হেডার মধ্যে byteth
লিকি নুন

6
প্রোগ্রামটি sবা Sএটির কোথাও ব্যবহার না করে থাকলে বোনাস পয়েন্ট থাকতে হবে।
নেট ডায়মন্ড

1
আমি মনে করি ভাষার নামগুলি পরিষ্কার করা উচিত। প্রতিস্থাপন ছাড়া। কিছু ভাষায় ইতিমধ্যে "তম" রয়েছে, সুতরাং এটি অস্পষ্ট। এবং কে বলবে যে ভবিষ্যতে কেউ "কমন লিথপ" নামে একটি ভিন্ন ভাষা তৈরি করবেন না?
mbomb007

1
@ mbomb007 আমি এটি সম্পর্কে খুব বেশি চিন্তা করব না। আমি নিশ্চিত নই যে আপনার উত্তরটির শিরোনাম দেওয়ার জন্য কোনও ডিফল্ট উপায় আছে কিনা। বেশিরভাগ প্রশ্ন আমি দেখতে পাচ্ছি যে তারা কীভাবে এটি করতে হয় তা এটি সাধারণভাবে হয় state উত্তরটি কীভাবে সেট করা উচিত তা আমি ব্যাখ্যা না করায় ব্যবহারকারীরা কীভাবে তারা চান তা তাদের শিরোনাম করতে মুক্ত। প্যাড্যান্ট হওয়ার কারণে, আমি কোনও ভাষাও চাইনি, তাই আমি তাদের লিখতে এমনকি তাদের বিরুদ্ধে তর্ক করতে পারি। তবে আমি আপনার বক্তব্য বুঝতে পারি না। আমি কেবল এটি উদ্বেগের বিষয় বলে মনে করি না
জর্জে

2
এই চ্যালেঞ্জটিকে আরও আকর্ষণীয় করে তুলেছে এমন একটি বিষয় LOOK OUT A SNAKE!!! -> LOOK OUT A THNAKE!!!
ফুলফি

উত্তর:


36

সাধারণ লিথপ, 62

(map()(lambda(u)(princ(case u(#\s"th")(#\S"Th")(t u))))(read))

প্রথমত, (read)ইনপুট (এটি একটি স্ট্রিং হওয়া উচিত)। সিএল এর স্ট্রিংগুলি ক্রম হয় তাই আমরা mapপ্রতিটি চরিত্রের পুনরাবৃত্তি করতে ব্যবহার করি । mapফলাফলের ধরণের প্রতিনিধিত্ব করার জন্য প্রথম যুক্তি (যেমন আমি কোনও ভেক্টর থেকে একটি তালিকা তৈরি করতে পারি)। এটি যখন হয় nil, ()ফলাফলগুলি বাতিল করা হয়। princপ্রতিস্থাপন করা উচিত হবে না এমন ফাংশনটি প্রতিটি অক্ষরকে কেবল ইনপুটটিতে ম্যাপ করা হয় (অ-পাঠযোগ্যভাবে মুদ্রণযোগ্য)।


14
ভাষা নাম যদিও।
জো জেড।

1
@JoeZ। আমি শুধু প্রতিস্থাপিত sদ্বারা thঐ Pyson প্রশ্নের সঠিক উত্তর বর্ণন: অন্য সবার মতো করেনি।
coredump

@ কর্ডম্প্প তারা সবই ভুল: এটি একমুখী: s-> th, S-> Th, th-> th, Th-> Th
এরিক আউটগলফার

1
@DrGreenEggsandIronMan নিশ্চিত, (defmacro cathe (&rest args) `(case ,@args))
coredump

1
ওকে lol যা আরও


13

জাভাথ্রিপ্ট ETh6, 38 বাইট

প্রথমে আমি সুস্পষ্ট সমাধান নিয়ে গেলাম

a=>a.replace(/s/g,'th').replace(/S/g,'Th')

তবে আমি এটি 4 বাইট নিচে গল্ফ করেছি

a=>a.replace(/s/gi,b=>b>'r'?'th':'Th')

এটি রেজেক্স iপতাকা ব্যবহার করে , যা কেস-সংবেদনশীল নিদর্শনগুলির জন্য অনুসন্ধান করে। জাভাস্ক্রিপ্ট সম্পর্কে ভাল বিষয় হ'ল আপনি প্রতিস্থাপন পরিচালনা করার জন্য একটি বেনাম ফাংশন নির্দিষ্ট করতে পারেন re

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

f=
a=>a.replace(/s/gi,b=>b>'r'?'th':'Th')

s.innerHTML = [
    'abScdsefSghsij',
    'Sam and Sally like Sheep',
    'Sally likes sausages',
    'Sally sells seashells'
].map(c=>c + ' => ' + f(c)).join`<br>`
<pre id=s>


11
"ই নথের দৈর্ঘ্য"?
জো জেড।

আমি ভাবছিলাম 'Tt'[b>'r']+'h', তবে এটি একই দৈর্ঘ্য
ওয়াশিংটন গুডেস

1
আপনার অর্থ 38 বাইটথ
ডাওনগোট

টিআইএল-এর জন্য +1 যে স্ট্রিং তুলনা কোড পয়েন্ট মানের মাধ্যমে করা হয়
মেয়রমন্টি

@ আপগোট এটি আমার দোষ ছিল।
নিল

11

জিএনইউ শেড - 17

s/S/Th/g;s/s/th/g

সুস্পষ্ট উত্তর।

$ sed -e "s/S/Th/g;s/s/th/g"

Sam and Sally like Sheep
Tham and Thally like Thheep

Sally likes sausages
Thally liketh thauthageth

Sally sells seashells
Thally thellth theathhellth

17
আপনি জিএনইউ থিড বলতে চেয়েছিলেন? ;)
এম 654


8

পাইথন 3 - 40 বাইট

প্রথম গল্ফিং!

lambda s:s.translate({115:'th',83:'Th'})

এটি strমডিউলটির অনুবাদ পদ্ধতি ব্যবহার করে যা কোনও অনুবাদ টেবিল গ্রহণ করে। অনুবাদ টেবিলটি dictকী হিসাবে কোড হিসাবে কী এবং কোড হিসাবে strএটি মান হিসাবে একটি সহজ ।


1
পিপি অ্যান্ড সিজি সম্প্রদায়টিতে আপনাকে স্বাগতম!
এরিক আউটগল্ফার

4
আমি কি আপনাকে জিজ্ঞাসা করতে পারি, আপনার দুটি পৃথক অ্যাকাউন্ট কেন?
বিলিন্ট

@ বিলিন্ট স্পষ্টতই, তিনি তার বর্তমান অ্যাকাউন্টটিতে লগ করতে ভুলে গিয়েছিলেন মাত্র 3 টি rep, তবে স্ট্যাক ওভারফ্লো সম্পর্কে একটি অভিজ্ঞতা । এবং একটি নতুন অ্যাকাউন্ট দিয়ে পোস্ট।
ব্যবহারকারী48538

6

জাভাথ্রিপ্ট ETh6, 43 বাইট th

s=>s.replace(/s/gi,m=>({s:'th',S:'Th'})[m])

টেট থুইট:

th=s=>s.replace(/s/gi,m=>({s:'th',S:'Th'})[m])
  
console.log(th('Sam and Sally like Sheep'));
console.log(th('Sally likes sausages'));
console.log(th('Sally sells seashells'));


6
স্বীকৃতি: আপনি কেবলমাত্র এটির শিরোনামের জন্য থুয়েট গেঁথেছেন!
জবাবদিহি করা বন্ধ করে দিয়েছে


5

সি, 50 বাইট

s(c){c=getchar();c+=c-83&95?0:'h\1';s(printf(&c));}

\1একটি আসল \x01বাইট দিয়ে প্রতিস্থাপন করুন ।

jimmy23013 একটি বাইট সংরক্ষণ করেছে, এবং তারপরে আমি আরও দু'জনকে তার পন্থাটি ব্যবহার করে সংরক্ষণ করেছি! ধন্যবাদ।


আমি মন্তব্য করতে চলেছিলাম যে &cপ্যারামিটারটি নষ্ট হয়ে গেছে। তবে এটি নয়, কারণ সামান্য এন্ডিয়ান আর্কিটেকচারে এটির দ্বিতীয় বাইটটি intহবে 0x00এবং আসলে "স্ট্রিং "টি শেষ হবে ... এটি মারাত্মক চতুর, আমি এটি ভালবাসি!
কোয়ান্টিন

s(c){c=getchar();c+=c-83&~32?0:26625;s(printf(&c));}
জিমি 23013

আপনি একটিতে 2 বাইট ঠেলাতে পারবেন না char'h\1'
এরিক আউটগলফার

@ ইজিᴏʟғᴇʀ মাল্টি-ক্যারেক্টার কনস্ট্যান্টগুলি বাস্তবায়ন সংজ্ঞায়িত হয়েছে, পুরোপুরি বৈধ সি হতে হবে
ডেনিস

5

05 এ বি 1 ই, 14 12 বাইট

's„th:'S„Th:

সরাসরি উত্তর।

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

@ আদনানকে 2 বাইট সংরক্ষণ করা হয়েছে


এটি কি সোজা ফরোয়ার্ড উত্তরের চেয়ে থ্রাইটাইট ফরোয়ার্ড অ্যান্থওয়ার নয়?
ডরোকায়হান মনিকে

4

জাভা, 71 65 বাইট

String t(String s){return s.replace("S","Th").replace("s","th");}

গল্ফিং এ প্রথম প্রচেষ্টা, তাই জাভা দিয়ে কেন নয়।


2
replaceপরিবর্তে আপনি ব্যবহার করতে পারেনreplaceAll
aditsu

ওহ, হ্যাঁ আপনি ঠিক বলেছেন। ধন্যবাদ! @ অ্যাডিটসু
ইনসান

3
আপনি কোনও ফাংশনের পরিবর্তে ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে কিছু বাইট সংরক্ষণ করতে পারেন। s->s.replace("S","Th").replace("s","th")
ডেনকার

4

GNU AWK, 31 বাইট

gsubরেগেক্সের মাধ্যমে নিম্ন বা উচ্চতর এস অনুবাদ করতে কেবল ফাংশন ব্যবহার করে এবং এটি পরে মুদ্রণ করুন। ফাইলগুলির সাথে বা stdinএই ক্ষেত্রে যেমন কাজ করতে পারে

$ awk '{gsub(/s/,"th");gsub(/S/,"Th")}1' <<< "This is Sparta"                   
Thith ith Thparta


3

পাইথন 3 - 46 বাইট

lambda s:s.replace("s","th").replace("S","Th")

@ ডেনারএফির সাহায্যে 4 টি বাইট ফেলে দেওয়া হয়েছে !


1
পাইথন 3 হ'ল এটি ভাষায় মূলত লেখা হয়েছিল My তার কোডের আমার সংস্করণটি 59 বাইট ছিল, তাই আমরা করবো!
জর্জে

1
lambda s:s.replace("s","th").replace("S","Th")কিছুটা খাটো
ডেনকার

@ ডেনারএফ্ হ্যাঁ এটি সংক্ষিপ্ত হলেও এই ক্ষেত্রে ল্যাম্বদা ব্যবহার করার জন্য আপনার এখনও মূল প্রশ্নের উত্তর দেওয়ার জন্য একটি ইনপুট এবং আউটপুট লাগবে।
জর্জে

1
@ জর্জ কমিউনিটি sensকমত্যটি হল যে ফাংশনগুলি স্টিডিন / স্টাডআউট ব্যবহার না করে যুক্তিগুলি এবং রিটার্ন মানগুলি ব্যবহার করতে পারে। আই / ও-র জন্য আমাদের খেলাপি একবার দেখুন । আপনি যদি চান অবশ্যই সেগুলিকে ওভাররাইড করতে পারেন, তবে এটি এই বিশেষ চ্যালেঞ্জের খুব বেশি অর্থ পাবে না।
ডেনকার

পছন্দ করুন আমি যখন প্রশ্নটি জিজ্ঞাসা করেছি তখন আউটপুটটি প্রতিধ্বনি বা মুদ্রণ হবে। তবে আমি এটি ডিফল্টে রেখে দেব। সুতরাং হ্যাঁ ল্যাম্বদা ব্যবহার করা আরও ছোট হবে
জর্জে

3

সি # 6.0 - 58 বাইট

string f(string s)=>s.Replace("s","th").Replace("S","Th");

ফাংশনের আর্গুমেন্ট হিসাবে ইনপুট স্ট্রিং নেয়।


3

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

f 's'="th";f 'S'="Th";f x=[x]
(>>=f)

আপনার জায়গার দরকার নেই:f's'=...
থ্রিএফএক্স

1
দুঃখের বিষয়, আমি করি। হাস্কেলের নামগুলিতে অ্যাডস্টোফেস থাকতে পারে। :(
লিন

ওরে অভিশাপ আমি পুরোপুরি ভুলে গেছি। আমার প্রায় কখনও দরকার নেই Char...
থ্রিএফএক্স

8
আমি ভেবেছিলাম এটি "হ্যাথকেল"
প্যাট্রিক রবার্টস

3

মরিচা, 46 বাইট

|s:&str|s.replace("s","th").replace("S","Th");

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


1
@ mbomb007। আমি নিশ্চিত না যে আপনার এটি সম্পাদনা করা উচিত।
ওয়াশিংটন গুয়েডস

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

2
@ এমবিম্ব ২০০7, কে বলতে চাইছেন যে ভবিষ্যতে কেউ "মরচে" নামে একটি আলাদা ভাষা তৈরি করবেন না?
msh210

@ msh210 মূল পয়েন্ট, কারণ যদি এটি ব্যবহার করা হয় তবে পোস্টারটি পরিষ্কার করা দরকার।
mbomb007

3

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

যদি কোনও ফাইল থেকে চালানো হয়:

<?=strtr($argv[1],["s"=>"th","S"=>"Th"]);

হিসাবে চালান:

~$ php [file] "This is Silly"

-1 বাইট: শেষে নতুন
লাইনটি

-8 বাইট: উদ্ধৃতি সরান। -> php -d error_reporting=0বিজ্ঞপ্তি দমন করতে ব্যবহার করুন ।
টাইটাস

3

টিআই-বেসিক, 126 বাইট

Input Str1
inString(Str1,"s
While Ans
sub(Str1,1,Ans-1)+"th"+sub(Str1,Ans+1,length(Str1)-Ans->Str1
inString(Str1,"s
End
inString(Str1,"S
While Ans
sub(Str1,1,Ans-1)+"Th"+sub(Str1,Ans+1,length(Str1)-Ans->Str1
inString(Str1,"S
End
Str1

এটা ভুল. Str1কখনও পরিবর্তন হয় না, এবং Ansশেষে একটি সংখ্যা রাখে।
lirtosiast

নোটের জন্য ধন্যবাদ, এখনই স্থির। আমি জানি না কিভাবে আমি Str1আবার কীভাবে সংরক্ষণ করতে ভুলে গিয়েছিলাম ...
টিমটেক

এটি এখনও ভুল; প্রথম বা শেষ চরিত্রটি এস এর ক্ষেত্রে ত্রুটি রয়েছে যেমন আমি আগেই বলেছি, আপনার কোড পোস্ট করার আগে দয়া করে আপনার কোডটি পরীক্ষা করুন।
lirtosiast

3

জাভা, 101 বাইট

interface a{static void main(String[]A){System.out.print(A[0].replace("S","Th").replace("s","th"));}}

মনে রাখবেন, এই অসদৃশ সম্পূর্ণ প্রোগ্রাম পূর্ববর্তী জাভা উত্তর

বোনাস ( প্রথমে সি প্রিপ্রোসেসর দ্য ইই প্রিপ্রিথোথরকে খাওয়ানো হবে ):

#define interfaith interface
#define thtatic static
#define Thtring String
#define Thythtem System
#define replaith(x,y) replace(x,y)

interfaith a{thtatic void main(Thtring[]A){Thythtem.out.print(A[0].replaith("S","Th").replaith("s","th"));}}



2

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

def l(s):return s.replace("s","th").replace("S","Th")

ব্যবহার:

>> l('Sam and Sally like Sheep')

Tham and Thally like Thheep

-7 বাইট: lambda s:s.replace("s","th").replace("S","Th")ব্যবহার:(lambda s:s.replace("s","th").replace("S","Th"))(s)
এরিক আউটগলফার

@ ইগি ওয়েল, এটি টুক্কাএক্স এর উত্তরের সাথে মিল (যা আমার আগে পোস্ট করা হয়েছিল), তাই ...
এম 654

তখন আর উত্তর পোস্ট করার কোনও কারণ নেই।
এরিক দ্য আউটগল্ফার

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ আমি আমার পোস্ট করার সময় তার বিষয়টি লক্ষ্য করিনি।
এম 654

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

2

গেমমেকার ল্যাঙ্গুয়েজ, by৪ বাইট

return string_replace_all(string_replace_all(argument0,'s','th'),'S','Th')

2

মতলব, 39 বাইট

একটি সংকীর্ণ পদ্ধতির:

@(t)strrep(strrep(t,'s','th'),'S','Th')

2

এমাকথ লিথপ, 61 বাইট

(lambda(s)(replace-regexp-in-string"[Ss]\\(\\w*\\)""th\\1"s))

ইম্যাক্স লিস্প পাঠ্য প্রতিস্থাপনের সময় স্মার্ট হওয়ার চেষ্টা করে, তবে সেই স্মার্টনেসটি তখনই ভেঙে যায় যখন প্রতিস্থাপন স্ট্রিংটি কেবল একটি স্থান নেয়, অর্থাত্ বড় হাতের অক্ষর এসটিকে "স্যাম এবং স্যালি" "" থম এবং থ্যালি "রূপান্তরিত করা থেকে রোধ করতে, পুরো শব্দটি পরিবর্তে মিলছে। তবে এটি "এসএএম এবং স্যালি" কে যেভাবে চাইবে পরিচালনা করে, যেমন "থ্যাম এবং থ্যালি" উত্পাদন করে।


2

x86 মেশিন কোড, 19 বাইট

হেক্সে:

86ac3c5374043c73750440aab068aa84c075eec3

ইনপুট:: ESIইনপুট স্ট্রিং EDI,: আউটপুট বাফার।

disassembly:

_loop:
0:  ac          lodsb       
1:  3c 53       cmp al,'S'  
3:  74 04       je _th      
5:  3c 73       cmp al,'s'  
7:  75 04       jne _nth    
_th:
9:  40          inc eax     ;[Ss]->[Tt]
a:  aa          stosb       
b:  b0 68       mov al,'h'  
_nth:
d:  aa          stosb       
e:  84 c0       test al,al  
10: 75 ee       jnz _loop   
12: c3          ret         

আপনি test al, 'S'উভয় একবারে চেক করতে ব্যবহার করতে পারেন
অ্যানাটোলিগ

2

বেফঞ্জ 98, 37 49 বাইট

মূল সংস্করণ :

~:"s"- #v_$"ht",>,
_;#-"S":<;$"hT",^ 

সম্মতি অনুসারে সংস্করণ সমাপ্ত হচ্ছে:

~:a-!#@_:"s"-#v_$"ht",>,
_;#-"S":      <;$"hT",^ 

এটি কোড গ্রিডে একটি বড় সম্মোহিত গর্ত ফেলে যা আমি খুব খুশি নই। সময় পেলে আমি তা সন্ধান করব।
49 তম বাইটটি দ্বিতীয় লাইনের শেষে একটি স্থান, যেখানে একটি আয়তক্ষেত্রাকার গ্রিড অন্তর্ভুক্ত ছিল, সিসিবি (এবং সম্ভবত অন্যান্য অনুবাদক) কে "থ" এর একটি অসীম রেখাটি ছাপানো এবং ছাপানো থেকে রোধ করতে হবে।



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