জে , 16 11 বাইট
(+$:)^:=1+?
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
টিএল; ডিআর 1+?
ডাই রোলটি সম্পাদন করে, (+$:)^:=
কেবল তখনই পুনরাবৃত্তি করে যখন এটি ইনপুটটির সমান হয়।
ফাংশনটি 4 ক্রিয়াগুলির একটি ট্রেন:
┌─ +
┌───┴─ $:
┌─ ^: ─┴─ =
│
──┤ ┌─ 1
└──────┼─ +
└─ ?
একটি ট্রেন তখন হয় যখন 2 বা ততোধিক ক্রিয়া সংমিশ্রিত হয়। এখানে, উত্তরটি ফর্মটির f g h j
:
(+$:)^:= 1 + ?
f g h j
একটি তথাকথিত "4-ট্রেন" হুক এবং কাঁটাচামচ হিসাবে পার্স করা হয়েছে:
f g h j ⇔ f (g h j)
সুতরাং, উত্তরটি সমান:
(+$:)^:= (1 + ?)
হুকস: (f g) x
এবংx (f g) y
একটি monadic (এক যুক্তি) দুটি ক্রিয়া এর হুক, একটি আর্গুমেন্ট দেওয়া x
, নিম্নলিখিত সমতুল্য ধারণ করে:
(f g) x ⇔ x f (g x)
উদাহরণস্বরূপ, (* -) 5
মূল্যায়ন করে 5 * (- 5)
যা মূল্যায়ন করে _25
।
এর অর্থ হ'ল আমাদের 4-ট্রেন, এর একটি হুক f
এবং এর (g h j)
সমতুল্য:
(f (g h j)) x ⇔ x f ((g h j) x)
কিন্তু f
এখানে কি করে ? পাওয়ার সংমিশ্রণটি (+$:)^:=
ব্যবহার করে দুটি ক্রিয়া সংমিশ্রণ : অন্য হুক ( ) এবং একটি ক্রিয়া ( )। নোট এখানে হয় dyadic -এটা দুটি আর্গুমেন্ট আছে ( এবং )। সুতরাং আমাদের কীভাবে আচরণ করে তা দেখতে হবে । পাওয়ার সংমিশ্রণটি একটি ক্রিয়া এবং একটি ক্রিয়া বা একটি বিশেষণ নেয় (একটি বিশেষ্য কেবলমাত্র ডেটার টুকরো) এবং সময় প্রয়োগ করে । উদাহরণস্বরূপ, নিন । নিম্নলিখিত সমতুল্য হোল্ড:^:
(+$:)
=
f
x
(g h j) x
^:
f^:o
f
o
f
o
o = 3
(f^:3) x ⇔ f (f (f x))
x (f^:3) y ⇔ x f (x f (x f y))
যদি o
একটি ক্রিয়া হয় তবে শক্তি সংযোগটি কেবল মূল্যায়ন করবেo
আর্গুমেন্টগুলির উপর থেকে এবং বিশেষ্য ফলাফলটি পুনরাবৃত্ত গণনা হিসাবে ব্যবহার করবে।
আমাদের ক্রিয়া জন্য, o
হয় =
, সমতা ক্রিয়া। এটি 0
ভিন্ন ভিন্ন যুক্তিগুলির জন্য 1
এবং সমান আর্গুমেন্টের জন্য মূল্যায়ন করে । আমরা (+$:)
সমান তর্ক করার জন্য একবার হুকটি পুনরাবৃত্তি করি এবং ভিন্ন ভিন্ন ব্যক্তির জন্য কোনও সময় নেই। ব্যাখ্যাটির জন্য স্বরলিপিটির জন্য, আসুন y ⇔ ((g h j) x)
। মনে রাখবেন যে আমাদের প্রাথমিক হুক এটির সমতুল্য:
x (+$:)^:= ((g h j) x)
x (+$:)^:= y
সংমিশ্রণটি প্রসারিত করে, এটি হয়ে যায়:
x ((+$:)^:(x = y)) y
যদি x
এবং y
একই হয় তবে এটি হয়ে যায়:
x (+$:)^:1 y ⇔ x (+$:) y
অন্যথায়, এটি হয়ে যায়:
x (+$:)^:0 y ⇔ y
এখন, আমরা একাকী কাঁটাচামচ দেখেছি। এখানে, আমাদের একটি ডায়ডিক কাঁটাচামচ রয়েছে:
x (f g) y ⇔ x f (g y)
সুতরাং, কখন x
এবং y
একই হয়, আমরা পাই:
x (+$:) y ⇔ x + ($: y)
কী $:
? এটি সম্পূর্ণ ক্রিয়া নিজেই বোঝায় এবং পুনরাবৃত্তি করার অনুমতি দেয়। এর অর্থ হ'ল, কখন x
এবং y are the same, we apply the verb to
y and add
x` এর সাথে।
কাটাচামচ: (g h j) x
এখন, ভিতরের কাঁটাচামচ কী করে? এটি ছিল y
আমাদের শেষ উদাহরণে। একটি যুক্তি প্রদত্ত, তিনটি ক্রিয়াপদের একাকী কাঁটাচামচ জন্য x
, নিম্নলিখিত সমতুল্যতা ধরে রাখুন:
(g h j) x ⇔ (g x) h (j x)
এই পরবর্তী উদাহরণ স্বরূপ, ধরুন আমরা ক্রিয়া নামে আছে SUM
, DIVIDE
এবং LENGTH
, যা তুমি কি অনুমান করা তারা পারে। যদি আমরা তিনটিকে একটি কাঁটাচামচ দিয়ে সংযুক্ত করি তবে আমরা পাই:
(SUM DIVIDE LENGTH) x ⇔ (SUM x) DIVIDE (LENGTH x)
এই কাঁটাচামচ গড়ের মূল্যায়ন করে x
(ধরে নেওয়া x
হচ্ছে সংখ্যার একটি তালিকা)। জেতে, আমরা আসলে এটি উদাহরণ হিসাবে লিখতে চাই+/ % #
।
কাঁটাচামচ সম্পর্কে একটি শেষ জিনিস। যখন বামতম "টাইন" (উপরে আমাদের প্রতীকী ক্ষেত্রে,g
) একটি বিশেষ্য হয়, তখন সেই মানটি ফিরিয়ে দেওয়া একটি ধ্রুবক ফাংশন হিসাবে বিবেচিত হয়।
এই সমস্ত জায়গায়, আমরা এখন উপরের কাঁটাটি বুঝতে পারি:
(1 + ?) x ⇔ (1 x) + (? x)
⇔ 1 + (? x)
?
[ 0 , এক্স )[ ১ , এক্স ] ।
সবগুলোকে একত্রে রাখ
এই সমস্ত জিনিস দেওয়া, আমাদের ক্রিয়া সমান:
((+$:)^:=1+?) x ⇔ ((+$:)^:= 1 + ?) x
⇔ ((+$:)^:= (1 + ?)) x
⇔ x ((+$:)^:=) (1 + ?) x
⇔ x ((+$:)^:=) (1 + (? x))
⇔ x (+$:)^:(x = (1 + (? x))
(let y = 1 + (? x))
if x = y ⇒ x + $: y
otherwise ⇒ y
এটি পছন্দসই কার্যকারিতা প্রকাশ করে।