तो कोड गोल्फ के लिए मुझसे पूछा, मैंऑपरेटर्स किसी interpretter एक बहुत छोटे से सूत्र के लिए
val ops = Map("plus" -> + , "minus"-> -, "times"-> *, "div" -> /)
की तरह कुछ करने के लिए कीवर्ड और कार्यों वे वर्णन के बीच त्वरित रूपांतरण की अनुमति चाहता था। इस वाक्यविन्यास ने न केवल पार्स किया है, लेकिन मैंने कोशिश की अन्य शॉर्टैंड सिंटैक्स में से कोई भी नहीं (_ + _
, _:Int.+_
) पार्स किया। क्या फ़ंक्शन शॉर्टैंड के रूप में ऐसा करने का कोई तरीका है, या क्या मैं अपने गोल्फ स्कोर को बर्बाद कर, लैम्ब्स को पूरी तरह से लिखने के लिए बर्बाद हूं।
संपादित करें: प्रश्न में समस्या केवल पूर्णांक थी। मैं समझता हूं कि अधिभार से यह अन्यथा मुश्किल हो जाएगा।
एक ही रास्ता मैं होगा 'पता वैल ऑप्स = मानचित्र [स्ट्रिंग, (इंट इंट) => इंट] (" प्लस "-> (_ + _), "शून्य" -> (_ - _)); 'यह बहुत से लोगों को नहीं बचाता है हालांकि पात्र ... मैं उत्सुक हूं कि अधिक अनुभवी/स्मार्ट लोग सुझाव देंगे। :) –
@ Patrykwwiek यदि ओपी किसी भी मूल्य के लिए सामान्य अपरिवर्तनीय चाहता है, तो लैम्ब्डा मदद नहीं करेगा, क्योंकि इस ऑपरेशन को – 4lex1v
@AlexIv True overloaded है, यह विशेष है। मुझे इस सवाल में '_: Int' एनोटेशन द्वारा माना गया कि एक सरल' (Int, Int) => Int' पर्याप्त होगा। यदि यह एक सामान्य सवाल है तो मैं विचारों से बाहर हूं। :) –