Befunge-93 में, अक्सर एक लूप को एक पंक्ति में समतल करने के लिए फायदेमंद हो सकता है, कोड के लूप अनुभाग को दोनों दिशाओं में निष्पादित किया जाता है।
उदाहरण के लिए, नीचे दिए गए कोड पर विचार करें, जो a
आठ बार पत्र को आउटपुट करता है :
"a"9>1-:#v_@
^\,:\<
यह पुल निर्देश ( #
) के साथ लूप अनुक्रम को चौराहे द्वारा एक रेखा में समतल किया जा सकता है
"a"9>1#\-#,:#:>#\_@
इसे ऑनलाइन आज़माएं!
यदि आप केवल गैर-व्हाट्सएप पात्रों को देख रहे हैं, तो आपको यह आभास हो सकता है कि यह मूल से अधिक लंबा है। लेकिन एक बार जब आप लाइनफीड और दो लाइन संस्करण में आवश्यक अतिरिक्त पैडिंग को ध्यान में रखते हैं, तो आप वास्तव में चार बाइट बचाते हैं।
इस विशेष मामले में, कोड को आगे भी संपीड़ित किया जाना चाहिए ताकि यह अनुक्रम :#:
बस के साथ बदल दिया जा सके :
।
"a"9>1#\-#,:>#\_@
इसे ऑनलाइन आज़माएं!
वास्तव में, किसी भी समय आपके पास एक ही निर्देश एक #
कमांड के दोनों तरफ दोहराया जाता है , आप इसे केवल एक निर्देश के लिए सरल कर सकते हैं, इसलिए यह एक ऐसी चीज है जिसे आपको हमेशा लूप को समतल करते समय देखना चाहिए।
यह समझने के लिए कि यह कैसे काम करता है, यह लूप अनुक्रम को दो बार लिखने में मदद कर सकता है, एक बार #
हटाए गए सभी वर्णों के साथ (यानी बाएं से दाएं निष्पादित करते समय क्या होता है), और एक बार #
हटाए जाने से पहले पात्रों के साथ (यानी बाएं से दाएं निष्पादित करना) )।
"a"9>1#\-#,:>#\_@
>1 - :> _ ; executing left to right
> \ ,: \_ ; executing right to left
अब आप स्पष्ट रूप से देख सकते हैं कि यह कोड के मूल दो लाइन संस्करण से कैसे मेल खाता है।