हास्केल - लोडिंग स्रोत के बिना - 478 644 अक्षर
यह मान लिया जाता है कि ALWAYS एक नई पंक्ति के साथ समाप्त होता है और इसलिए अंतिम वर्ण को बिना जांचे छोड़ देता है क्योंकि मुझे ऐसा महसूस नहीं होता
ए
main=interact$($'1').replicate.(1-).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='-'='*'|n=='*'='-'|True=n;d="main=interact$($'1').replicate.(1-).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='-'='*'|n=='*'='-'|True=n;d="
बी
main=interact$($'1').replicate.(1*).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='*'='-'|n=='-'='*'|True=n;d="main=interact$($'1').replicate.(1*).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='*'='-'|n=='-'='*'|True=n;d="
यह एक मानक क्वीन की तरह काम करता है, लेकिन अन्य प्रोग्राम प्राप्त करने के लिए * स्वैपिंग के लिए * (उन वर्णों को कहीं और टालना)।
उम्मीद के अनुसार निम्नलिखित परीक्षण प्रिंट करता है (मुख्य की जगह = a और b = के साथ $ बातचीत करें)
main=do
putStrLn "START"
putStrLn$a "FOO"
putStrLn$a "main=interact$($'1').replicate.(1*).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='*'='-'|n=='-'='*'|True=n;d=\"main=interact$($'1').replicate.(1*).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='*'='-'|n=='-'='*'|True=n;d=\"\n"
putStrLn$b "FOO"
putStrLn$b "main=interact$($'1').replicate.(1-).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='-'='*'|n=='*'='-'|True=n;d=\"main=interact$($'1').replicate.(1-).fromEnum.(/=map r(d++shows d[toEnum 10]))where r n|n=='-'='*'|n=='*'='-'|True=n;d=\"\n"
putStrLn "END"
-
START
1
1
END