সমস্ত কোড মানচিত্র / ফিল্টার / কমানো ক্রিয়াকলাপ হিসাবে একটি সিরিজ হিসাবে উপস্থাপন করা যাবে?


16

আমি সম্প্রতি কোডের বড় অংশগুলি রিফ্যাক্ট করে এবং তাদের প্রতিস্থাপন করে লিনক কোয়েরি করেছি।

ভাষার পক্ষপাতিত্ব অপসারণ - লিঙ্ক মূলত মানচিত্র / ফিল্টার এবং হ্রাস অপারেশনগুলির একটি সেট যা ডেটার ক্রমিকায় কাজ করে।

এটি আমাকে ভাবতে পেরেছিল, আমি তাত্ত্বিকভাবে এটি কতটা সক্ষম হতে পারি। আমি কি পুরো কোড বেসটি মানচিত্র / ফিল্টার এবং ক্রিয়াকলাপ হ্রাসের একটি সিরিজ (বা এমনকি একটি একক) এ আবারও লিখতে সক্ষম হব?

দুর্ভাগ্যক্রমে আমি দরকারী স্টাফগুলি করার জন্য অর্থ প্রদান করি, তাই আমি আরও পরীক্ষা-নিরীক্ষা করতে সক্ষম হইনি, তবে আমি এমন কোনও কোড কাঠামোর কথা ভাবতে পারি না যা এর মতো কাঠামোযুক্ত হতে পারে না। সাইড ইফেক্ট কোডটি মোকদের মাধ্যমে মোকাবেলা করা যেতে পারে .. এমনকি আউটপুটও মূলত মেমরির ঠিকানাগুলি স্ক্রিনের ঠিকানায় ম্যাপ করে।

এমন কি এমন কিছু আছে যা তাত্ত্বিকভাবে লিঙ্ক ক্যোয়ারী হিসাবে পুনর্লিখিত হতে পারে না?


গাছগুলির জন্য এখানে দেখুন: স্ট্যাকওভারফ্লো.com
ব্লুবেরিফিল্ডস

আমি সর্বদা ভেবেছিলাম যে ট্যুরিংয়ের সমাপ্তির গ্যারান্টি দেওয়ার জন্য "হ্রাস" যথেষ্ট (মানচিত্র এবং ফিল্টার অপারেশন হ্রাস হিসাবে প্রয়োগ করা যেতে পারে, না?) - কমপক্ষে, হ্রাসের কার্যকরী ভাষার সমতুল্য। লিনক সম্পর্কে বাস্তবতা কতটা ঘনিষ্ঠভাবে কার্যকারিতা অনুসরণ করে তা নিশ্চিত করার জন্য আমি যথেষ্ট জানি না।
ব্লুবেরিফিল্ডস

1
আমি জানি না, তবে থাম্বের মোটামুটি নিয়ম হ'ল যে কোনও কিছু এমনকি তাদের সমস্ত কোড লেখার বিষয়ে বিবেচনা করবে তা ট্যুরিং সম্পূর্ণরূপে পরিণত হবে। তবে এর বাস্তবতাটি হ'ল টুরিং সম্পূর্ণ হওয়া খুব উত্তেজনাপূর্ণ নয়।
PSr

1
আমি পিএসআরের সাথে একমত; আমি মনে করি এই প্রশ্নের একটি বৈধ উত্তরের টিউরিং সম্পূর্ণতার দিকে নজর দেওয়া দরকার। একটি প্রমাণ কেবল এই অপারেশনগুলি ব্যবহার করে একটি টুরিং মেশিন বাস্তবায়নের চেষ্টা করতে পারে।
রব

নিষ্ক্রিয় চিন্তাভাবনা: এমনকি যদি আমরা বাজে কথার অনুমতি দিই my_list.map(_ignored => a copy of my_list)তবে মনে হয় এই জাতীয় প্রোগ্রামের স্পেস ব্যবহারটি কিছু বহুবচন দ্বারা আবদ্ধ (প্রোগ্রামের দৈর্ঘ্যের উপর নির্ভর করে)। তাহলে এই জাতীয় ভাষা PSPACE- তে নেই এমন সমস্যাগুলি গণনা করতে পারে না। যাইহোক, পিএসপিএসিইতে যতগুলি সমস্যা অলঙ্ঘনীয় হিসাবে বিবেচিত হয়, বৃহত্তর শ্রেণীর কিছুই না বলে, এটি খুব গুরুতর বাধা নাও হতে পারে।

উত্তর:


1

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


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

"এখানে জোয়েল অন সফটওয়্যারটির একটি ভাল পরিচয়" - যা ফোর্টরানকে বেসিকের সাথে বিভ্রান্ত করার ব্যবস্থা করে, তাই আমি এতে অন্যান্য তথ্যের উপর খুব বেশি ভরসা করব না।
কোয়ান্ট_দেব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.