हास्केल में एक पहचान फ़ंक्शन होता है जो इनपुट को अपरिवर्तित लौटाता है। परिभाषा सरल है:
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
एस की रचना करना चाहते हैं । VIM में, की परिभाषा पर कर्सर के साथf
, यह करें:s/id id/id . id ./g
:।