क्यों लेबल / लेबल हटाया गया तर्क के अंतर अलग वापसी परिणाम?

वोट
0

मैं सिर्फ कारण (OCaml) सीखने शुरू कर दिया और मैं शीर्षक से बात समझ में नहीं आता। मूल्य की गणना क्यों दूसरे भाग रिटर्न ढंग से काम नहीं बल्कि? मुझे लगता है कि केवल तर्क अलग है पास करने का तरीका सोचा और एक परिणाम नहीं करता है।

let addWithoutLabel = (~x=10) => (y) => x + y;
let fifteen = addWithoutLabel(5);
Js.log(fifteen)
/* 15 */

let addWithLabel = (~x=10) => (~y) => x + y;
let sixteen = addWithLabel(~y=6);
Js.log(sixteen)
/* 
function sixteen(param) {
  return addWithLabel(param, 6);
}
*/

https://reasonml.github.io/en/try.html?rrjsx=true&reason=DYUwLgBAhgJjDqBLMALA9gVzAGSgIxGAgF4IAKAPwA9iBGABgEoSA+cgT2eLaogGoI7ANwAoUJABmiCWBAgAdiWhwkqTDnyEyAVkaiAUgGcAdMDQBzMlJlz5jEQHoAVBFraIThyLHhlCZCi4BESklDQMXGyUnKwQvALCPpCGiFSyCkqw-qhBWhTsxABseiJGphZkKWm29s4QIhIY8gDGYIhoilXp8mQADlAATlAAtswA3iIQEAPgGAOKWaqBmsB9gyMANBDFogC+Ip5AA

14/02/2020 को 00:00
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
3

यह जब वहाँ वैकल्पिक लेबल तर्क हैं (या अपने मामले में, एक डिफ़ॉल्ट पैरामीटर के साथ बहस) कम से कम एक स्थितीय पैरामीटर की आवश्यकता है। नहीं तो आप की ओर से कारण उम्मीद है आप आंशिक रूप से लागू किया समारोह का उपयोग करना चाहते हैं।

पूर्ण आवेदन सुनिश्चित करने के लिए एक इकाई का उपयोग ()दोनों समारोह घोषणा और समारोह मंगलाचरण में संकलक बताने के लिए है कि आप छोड़ करना चाहते ~xपैरामीटर।

let addWithoutLabel = (~x=10) => (y) => x + y;
let fifteen = addWithoutLabel(5);
Js.log(fifteen)
/* 15 */

let addWithLabel = (~x=10) => (~y, ()) => x + y;
let sixteen = addWithLabel(~y=6, ());
Js.log(sixteen)
/* 16 */

https://reasonml.github.io/en/try.html?rrjsx=true&reason=DYUwLgBAhgJjDqBLMALA9gVzAGSgIxGAgF4IAKAPwA9iBGABgBoIBPAShID4IqIBqVgG4AUKEgAzROLAgQAOxLQ4SVJhz5CZAKxsRAKQDOAOmBoA5mUnTZc3cID0AKgi0tER-eGjwShMhS4BESklDQMHMTclCzMZGwR3LwCLCJiEAaIVDLyirB+qIGaFCzEAGyx8frGphYZWTZ2Ti6l7p5AA

14/02/2020 को 00:33
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more