প্রমাণ করে λ x। Rams ≠ Ω ইন তার অলস ল্যাম্বডা ক্যালকুলাস তত্ত্বের জন্য আব্রামস্কি একটি লক্ষ্য নির্ধারণ করেছেন ( উদয় রেড্ডির দ্বারা ইতিমধ্যে উদ্ধৃত তাঁর কাগজের পৃষ্ঠা 2 ), কারণ এগুলি দু'জনেই দুর্বল মাথার স্বাভাবিক আকারে। ২.7 সংজ্ঞা অনুসারে, তিনি স্পষ্টভাবে আলোচনা করেছেন যে এটি-হ্রাস-এক্স। এম x → এম সাধারণত বৈধ নয়, তবে এম প্রতিটি পরিবেশে এম শেষ করলে এটি সম্ভব। এর অর্থ এই নয় যে এম অবশ্যই মোট ফাংশন হতে পারে - কেবল এম এর মূল্যায়ন করা অবশ্যই শেষ করতে হবে (উদাহরণস্বরূপ ল্যাম্বডায় হ্রাস করে)।
আপনার প্রশ্নটি ব্যবহারিক উদ্বেগ (পারফরম্যান্স) দ্বারা অনুপ্রাণিত বলে মনে হচ্ছে। তবে, যদিও হাস্কেল রিপোর্ট সম্পূর্ণ পরিষ্কারের চেয়ে কম হতে পারে, আমি সন্দেহ করি যে সমান λ x। "এটির সাথে" হাস্কেলের একটি কার্যকর বাস্তবায়ন তৈরি করবে; এটি হাস্কেল '98 কার্যকর করে কিনা তা বিতর্কযোগ্য নয়, তবে এই মন্তব্যটি দেওয়া হলেও এটি স্পষ্ট যে লেখকরা এটির বিষয়টি হতে চেয়েছিলেন।
সবশেষে, স্বেচ্ছাসেবীরা কীভাবে একটি স্বেচ্ছাসহ ইনপুট টাইপের জন্য উপাদান তৈরি করবেন? (আমি জানি কুইকচেক তার জন্য স্বেচ্ছাসেবী টাইপক্লাস সংজ্ঞায়িত করে তবে আপনাকে এখানে এ জাতীয় সীমাবদ্ধতা যুক্ত করার অনুমতি নেই)। এটি প্যারামিট্রিকটি লঙ্ঘন করে।
আপডেট হয়েছে : আমি এই অধিকারটি কোড করার ব্যবস্থা করিনি (কারণ আমি হাস্কলে তেমন সাবলীল নই), এবং এটি ঠিক করার জন্য নেস্টেড runST
অঞ্চলগুলির প্রয়োজন বলে মনে হচ্ছে । আমি এ জাতীয় নির্বিচার উপাদানগুলি সংরক্ষণ করতে, পরে সেগুলি পড়তে এবং সেগুলি সর্বজনীনভাবে উপলব্ধ করার জন্য একটি একক রেফারেন্স সেল (এসটি মোনাদে) ব্যবহার করার চেষ্টা করেছি। প্যারামিট্রিকটিটি প্রমাণ করে যে break_parametricity
নীচে সংজ্ঞায়িত করা যায় না (নীচে ফিরে যাওয়া ছাড়া, উদাহরণস্বরূপ একটি ত্রুটি), যখন এটি আপনার প্রস্তাবিত সেক উত্পাদিত উপাদানগুলি পুনরুদ্ধার করতে পারে।
import Control.Monad.ST
import Data.STRef
import Data.Maybe
produce_maybe_a :: Maybe a
produce_maybe_a = runST $ do { cell <- newSTRef Nothing; (\x -> writeSTRef cell (Just x) >> return x) `seq` (readSTRef cell) }
break_parametricity :: a
break_parametricity = fromJust produce_maybe_a
আমাকে স্বীকার করতে হবে যে আমি এখানে প্রয়োজনীয় প্যারামিট্রিসিটি প্রুফকে আনুষ্ঠানিক করার বিষয়ে কিছুটা অস্পষ্ট, তবে প্যারামিট্রিকটির এই অনানুষ্ঠানিক ব্যবহার হাস্কেলের কাছে প্রমিত; তবে আমি ডেরেক ড্রেয়ারের লেখাগুলি থেকে শিখেছি যে এই শেষ বছরগুলিতে প্রয়োজনীয় তত্ত্বটি দ্রুত কার্যকর করা হচ্ছে।
সম্পাদনাগুলি:
- এমএল-জাতীয়, অপরিহার্য এবং অপরিশোধিত ভাষার জন্য পড়াশোনা করা, বা প্যারামিট্রিকটির শাস্ত্রীয় তত্ত্ব হাস্কেলের আওতায় আছে কিনা সেগুলি আপনার কী প্রয়োজন, তাও আমি নিশ্চিত নই।
- এছাড়াও, আমি ডেরেক ড্রায়ারকে কেবল উল্লেখ করেছি কারণ আমি পরে উদয় রেড্ডির কাজ জুড়ে এসেছি - আমি সম্প্রতি এটি সম্পর্কে "রেইনল্ডসের সারাংশ" থেকে শিখেছি। (আমি কেবল গত একমাসে প্যারামিট্রিকটির উপর সত্যিই সাহিত্য পড়া শুরু করেছি)।