बनाना मैं स्कैला के लिए नया हूं लेकिन मैं सोच रहा था कि भाषा में एक सरल समीकरण पार्सर को कार्यान्वित करना संभव है। स्ट्रिंग निकालनेस्कैला - एक मूल गतिशील फ़ंक्शन पार्सर
LEN(String)
- - एक स्ट्रिंग
OR(cond1, cond2, ... condn)
AND(cond1, cond2, ... condn)
की लंबाई
IF(Cond a=b, val_true, val_false)
MID(String, Start_pos, num_chars)
:
मैं कुछ कार्य (ज्यादा एक्सेल कार्यों की तरह) कहो
तो विचार मैं एक सूत्र में साथ-साथ एक कमांड लाइन तर्क के रूप में एक उपयोगकर्ता से एक स्ट्रिंग के रूप रनटाइम पर गुजर सकता है हो सकता है किसी अन्य पैरामीटर कहना IF(LEN(param1)=4,MID(param1,2,1), MID(param1,0,LEN(param1)))
विचार समारोह का मूल्यांकन करना है, इसलिए यदि उपयोगकर्ता उपरोक्त सूत्र और स्ट्रिंग "स्कैट" प्रदान करता है तो आउटपुट "ए" होगा। यदि स्ट्रिंग "स्कैला" दिया गया था तो आउटपुट "स्कैला" होगा ...
स्कैला में इसे कार्यान्वित करना कितना आसान होगा? सबसे अच्छा डिजाइन दृष्टिकोण क्या है? मुझे पता है कि कोई फंक्शन पॉइंटर्स नहीं हैं (सी में मैंने फॉर्मूला स्ट्रिंग को फंक पॉइंट्स के संग्रह में पार्स किया होगा और वहां से चले गए थे) ...
कुशल स्कैला शैली में इसका उपयोग करने के तरीके पर कोई सलाह की सराहना की जाएगी।
चीयर्स!
वहाँ _are_ फ़ंक्शन पॉइंटर्स के बराबर है, अर्थात् अज्ञात फ़ंक्शन अक्षर। –
विचार सूत्र को पास करना होगा और फिर क्या करना होगा? फॉर्मूला को लागू करने वाला एक फ़ंक्शन लौटाएं, एक ऑब्जेक्ट को पारदर्शी अभिव्यक्ति का प्रतिनिधित्व करते हुए वापस करें? – huynhjl
क्षमा करें, यह पर्याप्त स्पष्ट नहीं है। "मैं एक सूत्र में गुजर सकता हूं": कैसे? कहा पे? चलने के समय पर? संकलन समय पर? स्रोत कोड के रूप में? रस्सी जैसी? और क्या आप ऐसा करने की उम्मीद करते हैं जब आप इसे पास करते हैं? अगर मैं आप थे, तो मैं फिर से पूरे प्रश्न को फिर से लिखूंगा। –