হাস্কেলের একটি পরিচয় ফাংশন রয়েছে যা ইনপুটটি অপরিবর্তিত রাখে। সংজ্ঞাটি সহজ:
id :: a -> a
id x = x
মজাদার জন্য, এই আউটপুট করা উচিত 8
:
f = id id id id id id id id id id id id id id id id id id id id id id id id id id id
main = print $ f 8
কয়েক সেকেন্ড পরে (এবং টাস্ক ম্যানেজার অনুযায়ী মেমরি প্রায় 2 গিগাবাইট) পরে, সংকলন ব্যর্থ হয় ghc: out of memory
। একইভাবে, দোভাষী ড ghci: out of memory
।
যেহেতু id
একটি দুর্দান্ত সরল ফাংশন, তাই আমি চালানোর সময় বা সংকলনের সময় এটি মেমরির বোঝা হওয়ার আশা করবো না। সমস্ত স্মৃতি কি জন্য ব্যবহার করা হচ্ছে?
id
s গুলি রচনা করতে চান । VIM সালে সংজ্ঞা কার্সার সঙ্গেf
, এই একটি করুন::s/id id/id . id ./g
।