অ্যারে প্রোগ্রামিং ভাষাগুলিতে আমার দুটি সেন্ট স্থাপন , বিশেষত জে এবং এপিএল ।
কে / কোনা, কিউ এবং নিয়ালও এই বিভাগে আসে তবে তাদের সাধারণত একই সুবিধা এবং সমালোচনা থাকে। বিচক্ষণতা ব্যবহার করুন। আমি নীচে জে উদাহরণগুলি ব্যবহার করব, বেশিরভাগ কারণ এগুলি ASCII এবং টাইপ করা সহজ - এপিএল অক্ষরগুলি একক বাইট হিসাবে গণনা করার চেয়ে মনে রাখবেন, তাই গল্ফের জন্য পছন্দ হিসাবে ভাষাটিকে আপনার সমস্যা হতে দেবেন না।
- গানিতিক সমস্যাগুলো
- নম্বর ধাঁধা সমাধান
- সংখ্যা পদ্ধতিতে পারফর্ম করা
- কৌশল 2D অ্যারে সমস্যা
এই দুটি, খুব ভাল গণিত এবং ডেটা-ম্যানিপুলেশন ভাষা কারণ তারা একটি উচ্চ পর্যায়ের প্রায় অ্যারে শিরসঁচালন এবং লুপিং অনেকটা সম্পন্ন করা হয় পরোক্ষভাবে বললেন দ্বারা, যেমন প্রতিটি দশ যোগ 3, 4 এবং 5 ( 10 + 3 4 5
) অথবা প্রতিটি যোগফল একটি অ্যারের সারি (- +/"1 arr
লুপিংটি এতে রয়েছে "1
)।
- প্রাথমিক সংখ্যাগুলির সাথে লেনদেন করতে সমস্যা
বিশেষত প্রধান সংখ্যা সমস্যাগুলির সাথে, জে এর দ্রুত এবং সংক্ষিপ্ত অন্তর্নির্মিত আদিম রয়েছে, যেমনটি এপিএলের কয়েকটি উপভাষা রয়েছে। N- তম প্রধানমন্ত্রী (: (সম্পাদনা করুন। আমি Nars2000, যা অংশ উপভাষা এবং অংশ সম্পূর্ণ ভিন্ন বাস্তবায়ন হয় চিন্তা করছি APL মৌলিক জন্য কোন builtin আছে।) p:
), কোন। ( _1&p:
), ফ্যাক্টরিং ( q:
), জিসিডি এবং এলসিএম ( +.
এবং *.
) অবধি প্রাইমগুলি রয়েছে , এবং আরও অনেক কিছু আছে। যাইহোক, বাস্তবে, প্রশ্নটি প্রায়শই নির্দিষ্ট করে দেয় যে আপনাকে নিজের নিজস্ব বাস্তবায়ন রান্না করতে হবে, সুতরাং এগুলি খুব বেশি ব্যবহার দেখায় না। আপনার প্রয়োজনীয় প্রধান জিনিসগুলি পাওয়ার জন্য এখনও ঝরঝরে এবং অভিনব উপায় রয়েছে, এটি কেবল খানিকটা কম কাটা-পেস্ট হয়ে যায়।
- স্ট্রিং প্রক্রিয়াজাতকরণ
- অ্যারে প্রসেসিং
অ্যারে এবং স্ট্রিং প্রসেসিংটি একটি মিশ্র ব্যাগের কিছুটা: যদি এপিএল / জেতে কিছু ভাল বা আদিম বা সাধারণ অভিবাদন থাকে তবে এটি প্রায় তুচ্ছ; যদি এটি এমন কিছু হয় যা খুব ক্রমযুক্ত এবং খুব সমান্তরাল না হয় তবে আপনার খুব খারাপ সময় কাটবে। এর মধ্যে যে কোনও কিছু বাতাসে রয়েছে, যদিও তারা সাধারণত প্রতিক্রিয়া জানায়।
- কনসোল বা ফাইল হয় এমন সমস্যাগুলির জন্য I / O সমাধান প্রয়োজন
- সমস্যাগুলি যার জন্য আপনার সমাধানটি একটি ফাংশন সংজ্ঞা হিসাবে লিখতে হবে
আইও অদ্ভুত। APL একটি একক চরিত্র ইনপুট অভিব্যক্তি আছে, কিন্তু জে সঙ্গে আপনি অন্তত 8 ব্যয় একটি সংখ্যা পড়া আছে: ".1!:1]1
। আউটপুটটি কিছুটা কম ভার্বোজ, তবে আপনি এখনও অনুশীলনে 6 বা 7 টি অক্ষর নষ্টের দিকে তাকিয়ে আছেন। বিশেষত জে যদি সত্যই এটির খুব পছন্দ করে তবে আপনি যদি কোনও ফাংশনের যুক্তি হিসাবে ইনপুটটি নিতে পারেন, পরিবর্তে আইওর সাথে নিজেকে ঘুরিয়ে ফেলা।
অনুশীলনে, জে এবং এপিএল সহ, সমাধানটি এমন একটি ফাংশন হিসাবে লেখা হয় যা আপনি কনসোলে প্রার্থনা করেন। এপিএল দিয়ে, আপনি মূলত আপনার যুক্তিগুলির জন্য কেবল পরিবর্তনশীল নাম রাখতে পারেন এবং আপনি যে বাক্যটি কুঁকড়ে ধনুযুক্ত ধনুর্বন্ধনীতে কাজ করেছিলেন তা মোড়ানো এবং একটি দিন কল করতে পারেন।
তবে জে এর সাথে, স্পষ্টভাবে ফাংশনগুলি সংজ্ঞায়িত করার জন্য একটি ওভারহেডের কিছুটা রয়েছে - 3 :'...'
এবং আপনাকে অভ্যন্তরের যে কোনও স্ট্রিং থেকে বাঁচতে হবে - তাই সাধারণত যা করা হয় তা হ'ল ট্যাসিট প্রোগ্রামিং: আপনি আঞ্চলিকভাবে একটি পদ্ধতিতে আঞ্চলিক সমন্বয় করে ফাংশন স্তরে প্রোগ্রাম করেন program হাস্কেলের মতো নয়। এটি একটি আশীর্বাদ এবং অভিশাপ উভয়ই হতে পারে, কারণ আপনার যুক্তিগুলিকে উল্লেখ করে আপনাকে যতগুলি চরিত্র ব্যয় করতে হবে না, তবে বন্ধুত্বের মধ্যে ডুবে যাওয়া এবং আপনার অন্যথায় সংক্ষিপ্ত এবং চতুর সমাধানটি হ্যাক করার চেষ্টা করে দশেক অক্ষর হারিয়ে ফেলা সহজ easy কিছু যে কাজ করে।
- সমস্যাগুলি যা পার্সিংয়ের প্রয়োজন
- গণনা জ্যামিতি
এই বিশেষ সমস্যাগুলিকে গল্ফ করার অভিজ্ঞতা আমার নেই, তবে আমি এটিটি বলব: শেষ পর্যন্ত অ্যারে প্রোগ্রামিং ভাষাগুলি একইভাবে প্রচুর ডেটা পাইপিং এবং রূপান্তর করতে খুব ভাল। আপনি যদি নম্বরটি বদলানোর সমস্যাটি অনুশীলনে রূপান্তর করতে পারেন তবে আপনি এপিএল / জে সমস্যা করতে পারেন, কোনও ঘাম নয়।
বলেছিল, সব কিছুই এপিএল / জে সমস্যা নয়। গল্ফস্ক্রিপ্টের বিপরীতে, এপিএল এবং জে তাদের অন্যান্য সুবিধাগুলির পাশাপাশি গল্ফ করার পক্ষেও ভাল হয়েছে;)