ট্রেনগুলির সাথে /
এবং আচরণের জন্য কৌশল ricks⌿
ট্রেনগুলি ব্যবহার করার সময় আপনি f/
যোগগুলি +/
বা এমনকি হ্রাস প্রতিলিপি তৈরির মতো হ্রাসও ব্যবহার করতে পারেন //
। যাইহোক, যদি আপনার ট্রেনের হ্রাসের বাম দিকে আরও অংশ থাকে তবে আপনাকে একটি শীর্ষস্থান তৈরি করতে আপনার প্রথম বন্ধনী প্রয়োজন। বাইটগুলি সংরক্ষণ করার জন্য কিছু কৌশল এখানে রইল।
ব্যবহার করুন 1∊
কীটাণুজাতীয় পরিবর্তে ∨/
বা ∨⌿
বুলিয়ান অ্যারে তে
টাস্ক: দুটি সমান-দৈর্ঘ্যের স্ট্রিং এ এবং বি দেওয়া, যদি A এবং B এর সাথে সম্পর্কিত অক্ষর সমান হয় তবে 2 প্রত্যাবর্তন করুন, অন্যথায় 0। যেমন A←'abc'
এবং B←'def'
দেয় 0
এবং A←'abc'
এবং B←'dec'
দেয় 2
।
একটি ডিএফএন সমাধান হতে পারে A{2×∨/⍺=⍵}B
তবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। A(2×∨/=)B
কাজ করছে না কারণ ট্রেন গঠনের নিয়মাবলী যেমনটি 2 (× ∨/ =)
চান ততই পার্স করে 2 × (∨/=)
।
এটি পর্যালোচনা করুন ∨/
বা ∨⌿
কোনও বুলিয়ান ভেক্টর ( ∨/,
অথবা ∨⌿,
উচ্চতর পদস্থ অ্যারেগুলির জন্য) জিজ্ঞাসা করেছেন যে কোনও 1 উপস্থিত আছে, অর্থাত্ 1∊
, তাই আমরা আমাদের ট্রেনটি লিখতে পারি 2×1∊=
।
মনে রাখবেন যে ∊
এটির সঠিক যুক্তিটি ছড়িয়ে পড়ে, তাই আপনি প্রতিটি সারি বা কলাম আলাদাভাবে হ্রাস করতে এটি ব্যবহার করতে পারবেন না।
1⊥
Monadic +/
বা এর পরিবর্তে ব্যবহার করুন+⌿
কার্য: এল এবং একটি সূচক এন তালিকাগুলির একটি তালিকা দেওয়া, Nth তালিকার যোগফল তিনবার ফিরে আসুন। যেমন L←(3 1 4)(2 7)
এবং N←1
দেয় 24
।
একটি ডিএফএন সমাধান হতে পারে N{3×+/⍺⊃⍵}L
তবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। N(3×+/⊃)L
কাজ করছে না কারণ ট্রেন গঠনের নিয়মাবলী যেমনটি 3(× +/ ⊃)
চান ততই পার্স করে 3 × (+/⊃)
।
লক্ষ্য করুন যে আনারি (বেস -১) এ সংখ্যার তালিকার মূল্যায়ন করা তালিকা সংক্ষেপের সমান কারণ ∑ { a , b , c , d } = a + b + c + d = ( a × 1³) + ( b × 1²) ) + ( সি × 1¹) + ( d × 1⁰)। সুতরাং +/a b c d
হিসাবে একই 1⊥a b c d
, এবং আমরা হিসাবে আমাদের ট্রেন লিখতে পারেন 3×1⊥⊃
।
নোট করুন যে উচ্চ-স্তরের আর্গুমেন্টগুলির 1⊥
সাথে সমান +⌿
।
স্কেলার এবং / বা ভেক্টর আর্গুমেন্টের f.g
পরিবর্তে ব্যবহার করুনf/g
টাস্ক: একটি তালিকা এল এবং একটি নম্বর এন দিয়ে দেওয়া হয়েছে, এল এর উপাদানগুলি এনইজি দ্বারা ভাগ করে দেওয়া L←31 41 59
এবং N←7
দেওয়া হলে সর্বনিম্ন বিভাগের বাকী সংখ্যাটি পুরো 1 টি পূর্ণ করে দিন 1 2 3
।
একটি ডিএফএন সমাধান হতে পারে N{⍳⌊/⍺|⍵}L
তবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। N(⍳⌊/|)L
কাজ করছে না কারণ ট্রেন গঠনের নিয়মাবলী যেমনটি ⍳ (⌊/) |
চান ততই পার্স করে ⍳ (⌊/|)
।
ভেতরের পণ্য A f.g B
স্কালে দুই ফাংশন যখন আর্গুমেন্ট scalars এবং / অথবা ভেক্টর হয় হিসাবে একই f/ A g B
কারণ উভয় (A[1] g B[1]) f (A[2] g B[2]) f (A[3] g B[3])
তাই আমরা হিসাবে আমাদের ট্রেন লিখতে পারেন, ইত্যাদি ⍳⌊.|
।
নোট করুন যে এটি উচ্চ-র্যাঙ্কের অ্যারেগুলির জন্য কাজ করে না।
বুলিয়ান বাম এবং সাধারণ ভেক্টর ডান আর্গুমেন্টের ∊⊆
পরিবর্তে ব্যবহার করুন/
কার্য: একটি তালিকা এল এবং একটি নম্বর এন দেওয়া হয়েছে, তালিকাটি ফিল্টার করুন যাতে কেবলমাত্র N এর চেয়ে বেশি সংখ্যা থাকে। যেমন L←3 1 4
এবং N←1
দেয় 3 4
।
একটি ডিএফএন সমাধান হতে পারে N{(⍺<⍵)/⍵}L
তবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। N(</⊢)L
কাজ করছে না কারণ বাঁধাই করা নিয়মগুলি এটিকে পার্স করবে (</) ⊢
তবে আপনি অপারেটর হ্রাস করার পরিবর্তে /
ফাংশনের প্রতিরূপ হতে চান ।
⊆
বুলিয়ান বাম আর্গুমেন্ট সহ ডায়াডিক বাম আর্গুমেন্টের 1s রান অনুসারে ডান যুক্তিটি পার্টিশন করে 0 টি দ্বারা নির্দেশিত উপাদানগুলি বাদ দেয়। অযাচিত পার্টিশনের জন্য সংরক্ষণ করুন এটি আমরা প্রায় চাই। তবে মোনাডিক প্রয়োগ করে আমরা বিভাজন থেকে মুক্তি পেতে পারি ∊
। সুতরাং {(⍺<⍵)/⍵}
হয়ে উঠতে পারে {∊(⍺<⍵)⊆⍵}
এবং এইভাবে আমরা আমাদের ট্রেনটি লিখতে পারি ∊<⊆⊢
।
নোট করুন যে এটি উচ্চ-র্যাঙ্কের অ্যারেগুলির জন্য কাজ করে না।
ব্যবহার করুন 0⊥
পরিবর্তে ⊢/
বা ⊢⌿
সাংখ্যিক আর্গুমেন্ট সহ
কার্য: একটি তালিকা এল এবং একটি নম্বর এন দেওয়া হয়েছে, এলইগির সঠিকতম উপাদান দিয়ে এনকে গুণান L←3 1 4
এবং N←2
দেয় 8
।
একটি ডিএফএন সমাধান হতে পারে N{⍺×⊢/⍵}L
তবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। N(⊣×⊢/⊢)L
কাজ করছে না কারণ ট্রেন গঠনের নিয়মাবলী যেমনটি ⊣ (× ⊢/ ⊢)
চান ততই পার্স করে ⊣ × (⊢/⊢)
।
লক্ষ্য করুন যে 0⊥
একটি সংখ্যাসূচক অ্যারে তেমন একই ⊢⌿
, তাই আমরা আমাদের ট্রেনটি লিখতে পারি ⊣×0⊥⊢
।
দ্রষ্টব্য যে এটি উচ্চ-স্তরের অ্যারেগুলির সর্বশেষ প্রধান ঘরটি নির্বাচন করে।