तो, मैं एक पुस्तक "औपचारिक भाषा सिद्धांत का परिचय" पढ़ रहा था और यह एक भाषा L(G) = {a^n ++ b^n | n > 0}
का वर्णन करता है।संतुलित भाषा, 2 गैर-टर्मिनल प्रतीकों, सूची समझ
यह निम्न प्रस्तुतियों है:
S -> ab | aSb
और इसलिए निम्न भाषा का उत्पादन होगा:
a, ab, aabb, aaabbb, ...
मैं सोच रहा था कि कैसे मैं हास्केल की सूची समझ इस्तेमाल कर सकते हैं इस भाषा बनाने के लिए। मुझे पता है कि मैं तारों के साथ सूची समझ कर सकता हूं, लेकिन मैं बहुत शुरुआत करने वाला हूं और मुझे यकीन नहीं था कि मैं इन तारों की तरह एक अनंत सूची कैसे प्राप्त कर सकता हूं।
मैं की तरह कुछ कल्पना कर रहा हूँ:
[ x ++ y | x <- ["a","aa",..] y <- ["b","bb",..]]
यह वही नहीं कर रहा है जो आपको लगता है। '[प्रतिकृति एन 'ए' ++ प्रतिकृति एन 'बी' के बारे में कैसे एन <- [1 ..]] '? यह सबसे वफादार अनुवाद की तरह लगता है ... – Alec
"ए" उस भाषा का हिस्सा नहीं है। –