এপিএলে গল্ফ করার টিপস


28

আমি সম্প্রতি একটি কোড গল্ফ চ্যালেঞ্জ শুরু করেছি এবং মনে হচ্ছে বিজয়ী হ'ল গল্ফস্ক্রিপ্ট (আশ্চর্য, অবাক!)। মজার বিষয়টি হ'ল আরও একটি শক্ত প্রতিদ্বন্দ্বী ছিল যার গল্ফস্ক্রিপ্টে জয়ের সম্ভাবনা ছিল। এর নাম এপিএল। আমি এখানে এপিএলে লিখিত প্রচুর উত্তর দেখতে পাচ্ছি। দেখে মনে হচ্ছে এই ভাষাটি কোড গল্ফিংয়ের পক্ষে মোটামুটি দক্ষ, তাই আমি এপিএল প্রোগ্রামগুলির জন্য যে কোনও কোড গল্ফিং টিপসের জন্য জিজ্ঞাসা করার সিদ্ধান্ত নিয়েছি। কিছু কোড উদাহরণ পোস্ট করুন নির্দ্বিধায়। ক্রিয়াকলাপে ভাষাটি দেখতে খুব আকর্ষণীয় হয়।

উত্তর:


23

সম্পাদনা করুন : এগুলি পড়ার জন্য যারা এপিএল একেবারেই জানেন না তবে তা গ্রহণ করতে চান, মাস্টারিং ডায়ালগ এপিএল একটি খুব ভাল সংস্থান।

  1. মূল্যায়ন কঠোরভাবে ডান থেকে বামে। এর মধ্যে সেটিং ভেরিয়েবল অন্তর্ভুক্ত রয়েছে, সুতরাং এটির সুবিধা নিন।

    2+a, 1+a←1 -> 3 4

    aসেট করা হয় 1, 1+aমূল্যায়ণ করা হয় 2, a,2মূল্যায়ন করা হয় 1 2এবং 2+1 2মূল্যায়ন করতে 3 4

  2. সি এর মতো একটি ফাংশনের সাথে মিলিত হতে পারে, অর্থাৎ a +← 3। সি থেকে ভিন্ন, এটি জেনেরিক: foo F← barসেট fooকরে F bar। কিছুটা অনিচ্ছাকৃতভাবে, একটি অভিব্যক্তি হিসাবে এটি ফিরে আসে bar, না F bar

    এটি বেনাম ফাংশনগুলির সাথেও কাজ করে:

          a←0
          a+←3 ⋄ a
    3
          a+←3 ⋄ a
    6
          a { ⍵/'!' } ←4 ⋄ a
    !!!!
    
  3. আপনি একটি অ্যারেরে বরাদ্দ করতে পারেন: A[3]←8যেমনটি আপনি আশা করেন d তবে আপনি একই সময়ে একাধিক আইটেমও বরাদ্দ করতে পারেন: A[3 5 6]←9 1 4বা এমনকি A[3 5 6]←9, সেগুলি একই আইটেমটিতে সেট করে। আপনি অবশ্যই এখানে একটি ফাংশন যোগ করতে পারেন । ফাংশনটি তখন প্রতিটি উপাদানকে আলাদাভাবে প্রয়োগ করা হবে, যেমনটি আপনি করেছেন

  4. আপনার বন্ধু, এমনকি যদি সে এটি সম্পর্কে খুব খুশি নাও দেখায়।

    1. যদি Fডায়াডিক হয় তবে ডায়াডিক আর্গুমেন্টগুলি স্যুইচ করে: a F b<-> b F⍨ a। গল্ফ করার সময় এটি কার্যকর হয় কারণ এটি ব্রেস ব্যবহার থেকে আপনাকে বাঁচাতে পারে:

      (F G H x) K y      <->     y K⍨ F G H x
      

      বাম হাতের আগে ডান হাত সর্বদা মূল্যায়ন করা হওয়ায় এটি মূল্যায়নের ক্রমকে পরিবর্তন করে।

    2. তাহলে Fdyadic হয়, কীটাণুজাতীয় প্রযোজ্য ফাংশন উভয় পক্ষের একই যুক্তি:

            5⍴5
      5 5 5 5 5
            ⍴⍨5
      5 5 5 5 5
      

      যুক্তিটি একবারে মূল্যায়ন করা হয়। এই প্রবণতা বিশেষ করে বাইরের পণ্যের সঙ্গে উপকারে আসে, অর্থাত্ একই অ্যারের মধ্যে অন্যান্য মান একটি অ্যারের মধ্যে প্রতিটি মান তুলনা, আপনি ব্যবহার করতে পারেন ∘.=⍨পরিবর্তে করতে থাকার x∘.=x←(whatever)

    3. যদি Fmonadic হয়, কিছুই না, কিন্তু এটি যুক্তি থেকে ফাংশন পৃথক করে। সুতরাং যদি ফাংশনটি জটিল হয় তবে এটি আপনার বন্ধনীগুলি সংরক্ষণ করতে পারে:

            {⍵+3}⍣5 6
            ∇{⍵+3}              
           ∇ ⍣ 5 6              
            ({⍵+3}⍣5)6
      21
            {⍵+3}⍣5⍨6
      21
      
  5. আইডিয়ম শিখুন! তারপরে আইডিয়ামগুলিকে গল্ফ করুন। উদাহরণ স্বরূপ:

    ((((1↑⍴X),⍴Y)↑X)^.=Y)⌿X
    

    যান্ত্রিকভাবে রূপান্তরিত হতে পারে:

    X⌿⍨Y^.=⍨X↑⍨(1↑⍴X),⍴Y
    

    এবং তারপরে আরও এতে:

    X⌿⍨Y^.=⍨X↑⍨(⊃⍴X),⍴Y
    

    (প্রথম) 1↑এই ক্ষেত্রে (এক নিতে ) সমতুল্য হওয়া । এবং সম্ভবত:

    X⌿⍨Y^.=⍨X↑⍨(≢X),⍴Y
    

    (ট্যালি) ⊃⍴স্কেলার ব্যতীত (আকারের প্রথম উপাদান ) সমতুল্য হওয়া ।


রাস্পবেরি পাই সংস্করণ থাকার পাশাপাশি কোনও নিখরচায় লাইসেন্স পাওয়ার কী উপায় আছে?
ফেবিনআউট

এটি পাওয়ার একটি আইনী উপায়, স্পষ্টতই।
ফ্যাবিনআউট ২:01

2
@ ফ্যাবিনআউট: ডায়ালগ ডট কম এ আপনি একটি বিনামূল্যে উইন্ডোজ সংস্করণ ডাউনলোড করতে পারেন। "ডাউনলোড অঞ্চল" এবং তারপরে "নিবন্ধভুক্ত ডাউনলোড" ক্লিক করুন। এটি আপনাকে নিবন্ধভুক্ত করতে পারে কিন্তু অন্যথায় এটি পুরোপুরি কার্যকরী এবং বিনামূল্যে এবং আইনী। আপনি যদি শিক্ষার্থী হন তবে ফর্মটি পূরণ করে আপনি বিনামূল্যে সাধারণ সংস্করণটি পেতে পারেন। আপনি যদি এমন কোনও দেশে বাস না করেন যেখানে পাইরেটিংয়ের জন্য তারা আপনার জীবন নষ্ট করে দেয় তবে ভাল, আপনি কী করতে হবে তা জানেন।
মেরিনাস

এছাড়াও রয়েছে নর্স ২000, একটি ওপেন সোর্স বাস্তবায়ন যার ডায়ালগের (এবং কিছু বাগগুলি) তুলনায় অনেক বেশি বৈশিষ্ট্য রয়েছে যার কয়েকটি বৈশিষ্ট্য গল্ফিংয়ের জন্য কার্যকর আসে যেমন প্রাইম নম্বর ফাংশন বা মাল্টিসেটস।
টোবিয়া

1
জিএনইউ এপিএল রয়েছে।
এম। আলাগান

14

ট্রেন

A(f g h)B      ←→  (A f B)g A h B  ⍝ fork
 (f g h)B      ←→  (  f B)g   h B  ⍝ fork
A(  g h)B      ←→         g A h B  ⍝ atop
 (  g h)B      ←→         g   h B  ⍝ atop
 (A g h)       ←→  ({A} g h)       ⍝ "Agh" fork
 (f g h k)     ←→  (f (g h k))     ⍝ 4-train
 (f g h k l)   ←→  (f g (h k l))   ⍝ 5-train, etc
 (f g h k l m) ←→  (f(g h(k l m))) ⍝ groups of 3 from the right, last could be 2
  f∘g B        ←→    f g B         ⍝ "compose" operator, useful in trains
A f∘g B        ←→  A f g B

এর অর্থ কি এই যে ভবিষ্যতের পাঠকদের জন্য, আমাদের ওবারনকে বলা উচিত না কীভাবে এটি সংক্ষিপ্ত করবেন?
অ্যাডাম

না, পিপিসিজিতে আপনি যেমন করেন তেমন করুন। অভিব্যক্তিটি এর সংক্ষিপ্ততম পৌঁছানোর পরে আমি সেই লাইনটি সরিয়ে ফেলব (যা আমি বিশ্বাস করি)। এটি একটি সহজ অনুশীলন - আমি মনে করি না যে আপনি ব্যক্তিগতভাবে এটি থেকে উপকৃত হবেন।
এনজিএন

আমি এটি 16 এ নামতে পারি, তবে আমি আপনার কোনও টিপস ব্যবহার করছি না, তাই সম্ভবত আমি পথ ছাড়ছি।
অ্যাডম

@ আদম ভাল, আপনি একটি ট্রেন ব্যবহার করছেন :) খনি অনুরূপ ছিল কিন্তু এখন আর আমি ⎕ML মনে করা হয়নি
ngn

এটি কি " ডান থেকে 3 টি দল " নয়?
অ্যাডম

7

ট্রেনগুলির সাথে /এবং আচরণের জন্য কৌশল 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⊥⊢

দ্রষ্টব্য যে এটি উচ্চ-স্তরের অ্যারেগুলির সর্বশেষ প্রধান ঘরটি নির্বাচন করে।


1
আপনি কি এই একটিতে এই চ্যাট উত্তর যুক্ত করতে পারেন ?
জে. সাল্লা

1
@ J.Sallé যোগ করা হয়েছে।
এডম

7

সংযোজনের সাথে গুণকে একত্রিত করতে ব্যবহার করুন

(a×b)+C  ->  a⊥b,C
(C)+a×b  ->  a⊥b,C
(a×b)-C  ->  a⊥b,-C

অনুমিতি:

  • aএবং bএমন পদগুলি যা বাম আর্গুমেন্ট হিসাবে ব্যবহার করার সময় আরও প্রথম বন্ধনীর প্রয়োজন হয় না

  • C বাম আর্গুমেন্ট হিসাবে ব্যবহৃত হয় এমন একটি অভিব্যক্তি যা বন্ধনীগুলির প্রয়োজন হতে পারে

  • a b C সংখ্যার স্কেলারগুলিতে মূল্যায়ন করুন


5

জটিল সংখ্যা

প্রায়শই উপেক্ষা করা হয়, তারা গ্রিড, ম্যাজস, ফ্র্যাক্টাল বা জ্যামিতির সাথে সম্পর্কিত আচরণগুলি সংক্ষিপ্ত করার জন্য দুর্দান্ত সুযোগগুলি উপস্থাপন করে।

0j1⊥¨    0j1⊥   ⍝ pair(s) of reals -> complex
11 9∘○¨  11 9○  ⍝ complex -> pair(s) of reals
|z0-z1          ⍝ distance between two points
0j1×z   0j¯1×z  ⍝ rotate by ±90° around (0,0)
0j1*⍳4          ⍝ the four cardinal directions
+z       -+z    ⍝ reflect across x or y axis
+\0,z           ⍝ sequence of steps -> path
2-/z            ⍝ path -> sequence of steps
0j1⊥¨n-⍳2⍴1+2×n ⍝ lattice centred on (0,0)

4

সূচকের মডুলো ভেক্টরের দৈর্ঘ্য

⊃i⌽aপ্রায়শই নিখরচায় ছোট ⊃a[(≢a)|i]বা a⊃⍨i|⍨≢a(যেখানে aভেক্টর এবং iএকটি পূর্ণসংখ্যা এবং ⎕io0 হয়)

এটির জন্য দরকারী বৈকল্পিকতা (নির্দেশ করার জন্য এরিকথিউটগলফারকে ধন্যবাদ) হ'ল: I↑Y⌽⍨I×Xযেখানে Yকিছু দৈর্ঘ্য- Iভেক্টরগুলির সংমিশ্রণ এবং Xউদাহরণটি আমরা বেছে নিতে চাই তার সূচক:3↑'JanFeb...Dec'⌽⍨3×month


3

ধ্রুবক কাজ

=⍨এবং ≠⍨ngn ধন্যবাদ।

কখনও কখনও আপনার তালিকার প্রতিটি উপাদানগুলির জন্য কেবল একটি একক মান প্রয়োজন। আপনি ব্যবহার করতে প্ররোচিত হতে পারে {value}¨, এটি ব্যবহার করা সংক্ষিপ্ত value⊣¨ কিন্তু কিছু সাধারণ মানের জন্য, আপনি এমনকি আরও ছোট (ব্যবহার করে ⎕IO←0) পেতে পারেন :

¯1এর সাথে ⍬⍸list

0এর সাথে ⍬⍳list

1এর সাথে ⍬⍷list

মনে রাখবেন যে এগুলি কেবল তালিকাগুলিতে কাজ করে (যদিও এগুলি নেস্ট করা হতে পারে)। উচ্চ-র‌্যাঙ্কের অ্যারেগুলির জন্য, আপনি সমস্ত 0 এবং সমস্ত 1 এস পেতে নিম্নলিখিত ব্যবহার করতে পারেন:

1এর সাথে =⍨

0এর সাথে ≠⍨

আপনি যদি সেট করে থাকেন তবে ⎕ML←0সমস্ত নম্বরটি শূন্যে তৈরি করা যাবে (যেন ) সাথে:

আপনি শুধুমাত্র একটি একক সংখ্যা প্রয়োজন হয়, আপনি পরমাণুসদৃশ্য ব্যবহার করতে সক্ষম হতে পারে পরিবর্তে ব্যবহার করার 1 অথবা 0 পেতে 1⊣বা 0⊣


" কখনও কখনও আপনার তালিকার প্রতিটি উপাদানের জন্য কেবল একটি মান প্রয়োজন " "- এটি লক্ষণীয় হতে পারে: যখন মানটি তালিকার প্রথম উপাদান হয়, আপনি ব্যবহার করতে পারেন⊣\
ngn

@ngn আমি বলতে চাই যে এবং সঙ্গে /এবং মেধার তাদের নিজস্ব একটি পোস্ট।
অ্যাডম

2

ব্যবহার

বন্ধনী এড়িয়ে চলুন

(ভ্রমণ) প্যারেন্টেসিস এড়িয়ে আপনাকে বাইটগুলি বাঁচাতে পারে। যখনই আপনি একটি ফাংশন আছে যেখানে বাম যুক্তি parenthesised করা প্রয়োজন এবং ডান যুক্তি নয়, তাহলে আপনি একটি বাইট, যেমন রক্ষা করতে পারে (A<B)÷CC÷⍨A<B

ডাবল অ্যারে

এটির শেষে একটি অ্যারের অনুলিপি সংযুক্ত করতে, ব্যবহার করুন ,⍨Aবা ⍪⍨A

দ্বিগুণ সংখ্যা

ব্যবহার করার পরিবর্তে 2∘×দ্বিগুণ জন্য, আপনাকে ব্যবহার করতে পারেন +⍨যেহেতু এটি নিজেই যুক্তি যোগ করেছেন: 1+2∘×1++⍨

বর্গ সংখ্যা

ব্যবহার করার পরিবর্তে 2*⍨Yবর্গক্ষেত্র জন্য, আপনাকে ব্যবহার করতে পারেন ×⍨Yযেহেতু এটি নিজেই সঙ্গে যুক্তি দ্বিগুণ করে: 2*⍨A+B×⍨A+B

এলোমেলোভাবে অনুচ্ছেদ

?⍨Nআপনাকে দৈর্ঘ্যের এলোমেলোভাবে অনুমতি দেবে N

স্ব-শ্রেণীভুক্ত

প্রতিটি বড় কক্ষের সাথে প্রথম উপস্থিতির সূচকগুলি সন্ধান করুন ⍳⍨A

বুলিয়ান ভেক্টরে পিছনে 1s গণনা করুন

আপনার মধ্যে +/∧\⌽Bকতগুলি পিছনে থাকা 1 টি Nব্যবহার করা যায় তা গণনা করার পরিবর্তে ⊥⍨

বিপরীত রচনা

A f∘g Bহয় A f g B, তবে আপনি চান (g A) f B, ব্যবহার করুন f⍨∘g⍨

বিপরীত হ্রাস

f/ a1 a2 a3হয় a1 f (a2 f a3)। আপনি যদি চান (a1 f a2) f a3, ব্যবহার করুন f⍨/⌽

বিপরীত স্ক্যান

f\ A B Cহয়
A (A f B) (A f (B f C))

f⍨/∘⌽¨,\ A B Cহয়
A (A f B) ((A f B) f C)

f⍨\⌽ A B Cহয়
((A f B) f C) (B f C) C

⌽f/∘⌽¨,\⌽ A B C। হয়
(A f (B f C)) (B f C) C


2

অক্ষরগুলি ছাড়াই একটি স্ট্রিংয়ে অঙ্ক করুন ⍳≢

টাস্ক: দুটি স্ট্রিং দেওয়া হয়েছে, এস এবং টি, তাদের একচেটিশের সূচকগুলি তালিকাভুক্ত করে। যেমন S←'abcd'এবং T←'xyz'দেয় 1 2 3 4 5 6 7

একটি ডিএফএন সমাধান হতে পারে S{⍳≢⍺,⍵}Tতবে আপনি স্বাচ্ছন্দ্যে গিয়ে তা ছোট করতে চান। ⍳≢,কাজ করে যাচ্ছে না কারণ নিয়ম পার্স করার ট্রেন হিসাবে এই বিশ্লেষণ করতে হবে (⍳)≢(,)কিন্তু যদি আপনি চান (⍳≢),

একটি খালি বাম আর্গুমেন্ট সহ ডায়াডিক তাদের বর্তমান ক্রম অনুসারে সাধারণ অক্ষর অ্যারে গ্রেড করে, যা একই ⍳≢। এইভাবে {⍳≢⍺,⍵} হয়ে উঠতে পারে {⍬⍋⍺,⍵}, তাই আমরা আমাদের ট্রেনটি লিখতে পারি ⍬⍋,

নোট করুন যে এটি সংখ্যা বা মিশ্র অ্যারেগুলির জন্য কাজ করে না।


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