में एक मापा मूल्य एक मापा मूल्य का (आमतौर पर गैर नकारात्मक) होते हैं फ्लोटिंग प्वाइंट नंबर और इकाई के- उपाय को लागू करने। मुद्दा वास्तविक दुनिया की मात्रा, और नियमों को नियंत्रित करने वाले नियमों का प्रतिनिधित्व करना है। यहाँ एक उदाहरण है:स्काला
scala> val oneinch = Measure(1.0, INCH)
oneinch : Measure[INCH] = Measure(1.0)
scala> val twoinch = Measure(2.0, INCH)
twoinch : Measure[INCH] = Measure(2.0)
scala> val onecm = Measure(1.0, CM)
onecm : Measure[CM] = Measure(1.0)
scala> oneinch + twoinch
res1: Measure[INCH] = Measure(3.0)
scala> oneinch + onecm
res2: Measure[INCH] = Measure(1.787401575)
scala> onecm * onecm
res3: Measure[CMSQ] = Measure(1.0)
scala> onecm * oneinch
res4: Measure[CMSQ] = Measure(2.54)
scala> oncem * Measure(1.0, LITER)
console>:7: error: conformance mismatch
scala> oneinch * 2 == twoinch
res5: Boolean = true
इससे पहले कि आप भी उत्साहित हो, मैं इस लागू नहीं किया है, मैं सिर्फ एक आरईपीएल सत्र dummied। मुझे सिंटैक्स के बारे में भी यकीन नहीं है, मैं सिर्फ मापित मात्रा (मिश्रित इकाइयों के साथ) जोड़ने, मापित मात्राओं को गुणा करने, और आदर्श रूप से चीजों को संभालने में सक्षम होना चाहता हूं, और मुझे स्कैला के व्यंग्य प्रकार-प्रणाली की गारंटी के लिए पसंद है संकलन समय पर अभिव्यक्ति समझ में आता है।
मेरे सवालों का:
- इस समस्या के लिए मौजूदा शब्दावली है?
- क्या यह पहले ही स्कैला में किया जा चुका है?
- यदि नहीं, तो मैं "लंबाई" और "मीटर में मापा लंबाई" जैसी अवधारणाओं का प्रतिनिधित्व कैसे करूं?
- क्या यह किसी अन्य भाषा में किया गया है?
A $330-million Mars probe खो गया क्योंकि ठेकेदार गज और पाउंड का उपयोग कर रहा था और नासा मीटर और न्यूटन का उपयोग कर रहा था। एक माप पुस्तकालय दुर्घटना को रोका होगा।
लंबाई और मात्रा को गुणा करते समय आपको अनुरूपता मेल नहीं मिलती है? यह 'एम^4' में सिर्फ एक इकाई क्यों नहीं है? –
अच्छी पकड़ ऑक्सबो। हो सकता है कि वह वहां एक प्लस या माइनस साइन का उपयोग करने के लिए था? – I82Much
नहीं, मैं सिर्फ असंगतता के उदाहरण के लिए समझ रहा था। मुझे लगता है कि एम^4 सैद्धांतिक रूप से उचित है, हालांकि इसके लिए कोई उपयोग आसानी से दिमाग में आता है। जैसा कि I82much ने बताया, मात्रा से लंबाई घटाना एक बेहतर उदाहरण होगा। – Malvolio