ট্রেনগুলির সাথে /এবং আচরণের জন্য কৌশল 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⊥⊢।
দ্রষ্টব্য যে এটি উচ্চ-স্তরের অ্যারেগুলির সর্বশেষ প্রধান ঘরটি নির্বাচন করে।