2013-08-30 8 views
5

मैं वर्तमान में एक ऑनलाइन गेम लिख रहा हूं जहां मैं सर्वर-साइड बैकएंड के लिए हास्केल का उपयोग करता हूं और अगली/प्रतिपादन के लिए एल्म का उपयोग करता हूं।क्या एल्म के पास हैस्केल के "रीड" के बराबर है

अभी मेरे पास एक गेम एडीटी के रूप में मेरा गेमस्टेट है, एक प्रकार में इतना आसान है कि मैं इसे एल्म में भी उपयोग कर सकता हूं। मैं जेएसओएन का उपयोग करने से बचने की उम्मीद कर रहा था, और डेटा पर "शो" के आउटपुट को एएमएम पास कर रहा था, जिसे मैं एल्म में एडीटी में पार्स-बैक कर सकता था।

मुझे आश्चर्य है, क्या हैकेल के "पढ़ने" के बराबर कुछ भी है जो स्वचालित रूप से शो द्वारा स्ट्रिंग आउटपुट को देख सकता है, और इसे डेटा में वापस पार्स कर सकता है? यदि नहीं, तो क्या एल्म के लिए कोई मौजूदा पार्सर-पुस्तकालय उपलब्ध है?

यदि मैं जेएसओएन के साथ जा रहा हूं, तो क्या इसे स्वचालित रूप से एडीटी में परिवर्तित करने का कोई तरीका है? (कुछ Aeson के FromJSON के समान है, शायद?)

उत्तर

4

मेरे समझ के साथ कि एल्म-नहीं होने typeclasses-कर सकते हैं आसानी से read या fromJSON के बहुरूपी संस्करण नहीं है। मुझे यह भी विश्वास नहीं है कि जेनेरिक प्रोग्रामिंग के लिए इसकी कोई अच्छी सुविधाएं हैं, इसलिए deriving या ओकैम के with जैसी कुछ भी लागू करना मुश्किल होगा।

दुर्भाग्य से, इसका मतलब है कि आपका सर्वोत्तम शर्त आपके द्वारा उपयोग किए जाने वाले विभिन्न प्रकारों को क्रमबद्ध करने और deserializing के लिए एक-ऑफ फ़ंक्शन लिखना है। आप हास्केल पक्ष पर एसन का उपयोग कर सकते हैं और फिर Elm's JSON library का उपयोग कर JSON से/फ़ंक्शन लिख सकते हैं।

हास्केल के deriving Read द्वारा उत्पादित कोड का पुन: उपयोग करने और इसे एल्म पर पोर्ट करने का प्रयास करने का एक और विकल्प हो सकता है। हालांकि, यह इसके लायक होने से अधिक काम हो सकता है, और मुझे यकीन नहीं है कि इसके बारे में कैसे जाना है, बिल्कुल।

+0

यही कारण है कि मैंने गंभीरता से इसका उपयोग करने से पहले एल्म को परिपक्व होने का इंतजार करने का फैसला किया। –

+0

@johanatan आप आगे के लिए क्या उपयोग करते हैं? जावास्क्रिप्ट में टाइप क्लास या तो नहीं है। –

+1

@ सैम्बोसालिस: आप हास्केल या एचएचसीजेएस के साथ जावास्क्रिप्ट में हास्केल संकलित कर सकते हैं, जिनमें से दोनों समर्थन प्रकार क्लासेस हैं। –

संबंधित मुद्दे