এলিস , 17 বাইট
/?.R?y.@
\i.!yDo/
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
/...@
\.../
এটি অর্ডিনাল মোডে লিনিয়ার কোডের জন্য কেবলমাত্র সাধারণ টেম্পলেট। যদি আমরা এটিকে প্রকাশ করি, তবে আসল প্রোগ্রামটি সহজভাবে হয়ে যায়:
i.!?D.?.Ryyo
এখানে ধারণাটি আমার সিজেএম উত্তরের মতো । যেহেতু অ্যালিসের সাথে পূর্ণসংখ্যার সাথে স্ট্রিংগুলিতে সূচকের কোনও সহজ উপায় নেই, তাই লিখিতরূপের ( yএ্যালিসে) প্রতিলিপিটি ব্যবহার করা সহজ । যাইহোক, এলিসের ট্রান্সলিটেশন শব্দার্থবিদ্যা সিজেমের চেয়ে অনেক বেশি সাধারণ, যার অর্থ অ্যালিস কেবল পুনরাবৃত্তি ম্যাপিংগুলিকে উপেক্ষা করে না। উদাহরণস্বরূপ, আমরা যদি কেবল Mmm, marshmallowsএর বিপরীতে লিপ্যন্তরেণ করতে চাইতাম তবে এটি ম্যাপিংয়ের নিম্নলিখিত তালিকাটির প্রতিনিধিত্ব করবে:
M -> s
m -> w
m -> o
, -> l
-> l
m -> a
a -> m
r -> h
s -> s
h -> r
m -> a
a -> m
l ->
l -> ,
o -> m
w -> m
s -> M
মনে রাখবেন আমরা পেয়েছেন, উদাহরণস্বরূপ, m -> w, m -> o, m -> aএবং m -> a। সিজেএম কেবল প্রথম ম্যাপিং ব্যতীত সমস্ত কিছু ফেলে দেবে, তবে অ্যালিস পরিবর্তে এগুলি সাইকেল চালিয়ে যাবে। সুতরাং প্রথমটিতে mম্যাপ করা হবে w, দ্বিতীয়টিতে দ্বিতীয়টি হবে o, আবার পঞ্চমটি আরও wকিছু হবে। এই ক্ষেত্রে যে সহায়ক নয়, কারন সাধারণত এটি যদি আমরা সঞ্চালন সালে yউপর AAB(কিছু স্ট্রিং জন্য Aএবং B) হিসাবে আমরা CJam করেছিল, আমরা সবসময় শুধু পাবেন Bএলিস হবে।
সুতরাং আমরা কীভাবে ম্যাপিং গণনা করব যা কাজের জন্য কাজ করে y(যেমন আমরা কীভাবে বারবার ম্যাপিংগুলি ম্যানুয়ালি বাতিল করব)? অবশ্যই, অন্য একটি লিখিত লিপি লিখিতকরণ ব্যবহার করে। :)
আমরা যে ম্যাপিংটি চাই তার উত্সটি ইনপুট (যেমন ডুপ্লিকেটেড ইনপুট) হতে হবে। যদি আমরা উপরের ম্যাপিং নুবটিতে প্রয়োগ করি তবে প্রতিটি অক্ষর কেবল একবার উপস্থিত হয়, তাই আমরা কেবল পুনরাবৃত্তি ম্যাপিংগুলির প্রত্যেকটির প্রথমটি ব্যবহার করছি। সুতরাং ইনপুট এবং এর বিপরীতে নবকে লিপ্যন্তরকরণের মাধ্যমে আমরা কার্যকরভাবে কেবল অনুলিপি করা ম্যাপিংগুলি ত্যাগ করছি। তারপরে আমরা মূল ইনপুটটির ম্যাপিং হিসাবে নব এবং এই নতুন ফলাফলটি ব্যবহার করতে পারি। আমি নিশ্চিত যে এটি কারও কাছে বোধগম্য হয়েছে ...
সুতরাং কোড:
i Read input. ["Mmm, marshmallows"]
.! Store a copy on the tape.
?D Push the nub of the input. ["Mmm, marshmallows" "Mm, arshlow"]
. Duplicate. ["Mmm, marshmallows" "Mm, arshlow" "Mm, arshlow"]
? Retrieve input. ["Mmm, marshmallows" "Mm, arshlow" "Mm, arshlow" "Mmm, marshmallows"]
.R Push its reverse. ["Mmm, marshmallows" "Mm, arshlow" "Mm, arshlow" "Mmm, marshmallows" "swollamhsram ,mmM"]
y Transliterate. ["Mmm, marshmallows" "Mm, arshlow" "swllmhsr mm"]]
y Transliterate. ["swwllwmhsrwm mms"]
o Output. []