আপনার কাজটি হ'ল খুব চালাক লাইব্রেরি প্রয়োগ করে অথবা ইনপুট পাঠ্য প্রক্রিয়াকরণ করে এবং / অথবা সংকলন প্রক্রিয়াটি টুইঙ্ক করে প্রোগ্রামিং ভাষার একটি বৈশিষ্ট্য সম্পর্কে আলোচনা করা।
ধারনা:
- সি (যেমন
<?c printf("Hello,"); ?> world!
) তে ইন্টারলিভিং পিএইচপি-স্টাইলের উপস্থাপনা যুক্ত করুন । - একটি যোগ করুন নাল কোয়ালেসিং অপারেটর ঐ ভাষায় নয় C # এর এক।
- পিএইচপি-তে ম্যাক্রোগুলি যুক্ত করুন।
goto
জাভাস্ক্রিপ্ট যোগ করুন ।- এক্স ভাষার সাথে প্যাটার্ন মেলা যুক্ত করুন
- এমন একটি ভাষায় নামস্পেস সমর্থন যুক্ত করুন যা এটি নেই।
- সি পিএইচপি এর মত চেহারা করুন।
- হাস্কেলকে প্যাসকালের মতো দেখান।
- ... (মন্তব্য বিভাগে মতামত পোস্ট করতে নির্দ্বিধায়)
নিয়মাবলী:
- টেবিলে কিছু আনুন। হাস্কেলকে রূপক বৈশিষ্ট্য যুক্ত করতে কেবল "টেম্পলেট হাস্কেল" বলবেন না। এটি স্ট্যাকওভারফ্লো নয়।
- পুরো বাস্তবায়নটি একটি স্ক্রিনফুলের সাথে ফিট করা উচিত (উদাহরণটি গণনা করছে না)।
- এই কাজের জন্য বিশেষ করে কোনও বাহ্যিক সাইটে কোড হোস্ট করবেন না।
- সবচেয়ে চিত্তাকর্ষক বা অবাক করা বৈশিষ্ট্যটি জিতেছে।
বৈশিষ্ট্যটি 100% সঠিকভাবে প্রয়োগ করার বিষয়ে চিন্তা করবেন না। অনেক দূরে! মূল চ্যালেঞ্জটি হ'ল আপনি কী করতে চান তা নির্ধারণ করা এবং আপনার পরিকল্পনামূলক উদ্যোগ গ্রহণযোগ্যতা না পাওয়া পর্যন্ত নিষ্ঠুর সাথে বিশদ বিবরণগুলি কেটে দেওয়া ।
উদাহরণ:
সি প্রোগ্রামিং ভাষায় একটি ল্যাম্বডা অপারেটর যুক্ত করুন ।
প্রাথমিক পদ্ধতি:
ঠিক আছে, আমি জানি আমি libgc ব্যবহার করতে চাই তাই আমার ল্যাম্বডাস উপরের এবং নীচের দিকে ফানার্গ সমস্যা সমাধান করবে। আমার ধারণা আমি প্রথমে সি প্রোগ্রামিং ভাষার জন্য পার্সার লিখি / খুঁজে পাই, তারপরে আমার সি এর টাইপ সিস্টেম সম্পর্কে সমস্ত শিখতে হবে। টাইপগুলি যতটা যায় তার কীভাবে তা বোঝাতে হয় তা আমাকে খুঁজে বের করতে হবে। আমার কি টাইপ অনুমান প্রয়োগ করতে হবে, বা আমার কেবল প্রয়োজন অনুসারে ফর্মাল প্যারামিটারটি টাইপ করা উচিত? সিআই-তে থাকা এই সমস্ত ক্রেজি বৈশিষ্ট্যগুলি কী সম্পর্কে এখনও জানেন না?
এটি পুরোপুরি স্পষ্ট যে সিতে ল্যাম্বডাকে সঠিকভাবে প্রয়োগ করা একটি বিশাল উদ্যোগ নেওয়া হবে। সঠিকতা সম্পর্কে ভুলে যাও! সরল করুন, সরল করুন।
উত্তম:
Wardর্ধ্বমুখী ফানার্গস স্ক্রু করুন, কার দরকার? আমি জিএনইউ সি এর নেস্টেড ফাংশন এবং বিবৃতি প্রকাশের সাথে কৌতুকপূর্ণ কিছু করতে সক্ষম হতে পারি । আমি টর্স, হ্যাকি কোড সহ সিটিতে একটি আশ্চর্যজনক সিনট্যাকটিক রূপান্তরটি প্রদর্শন করতে চেয়েছিলাম, তবে এর জন্য আমার এমনকি কোনও পার্সারের প্রয়োজন হবে না। যে অন্য একটি দিনের জন্য অপেক্ষা করতে পারেন।
ফলাফল (জিসিসি প্রয়োজন):
#include <stdio.h>
#include <stdlib.h>
#define lambda(d,e)({d;typeof(e)f(d){return(e);};f;})
#define map(F,A)({typeof(F)f=(F);typeof(*(A))*a=(A);({int i,l=((int*)(a))[-1]; \
typeof(f(*a))*r=(void*)((char*)malloc(sizeof(int)+l*sizeof(*r))+sizeof(int)); \
((int*)r)[-1]=l;for(i=0;i<l;i++)r[i]=f(a[i]);r;});})
#define convert_to(T) lambda(T x, x)
#define print(T, fmt) lambda(T x, printf(fmt "\n", x))
int main(void)
{
int *array = 1 + (int[]){10, 1,2,3,4,5,6,7,8,9,10};
map(print(int, "%d"), array);
double *array2 = map(lambda(int x, (double)x * 0.5), array);
map(print(double, "%.1f"), array2);
long *array3 = map(convert_to(long), array2);
map(print(long, "%ld"), array3);
long product = 1;
map(lambda(int x, product *= x), array);
printf("product: %ld\n", product);
return 0;
}
এটা সহজ ছিল, তাই না? এমনকি map
এটিকে দরকারী এবং সুন্দর করার জন্য আমি একটি ম্যাক্রোতে ফেলেছিলাম।