Γιατί η διαφορά των επισημασμένων / μη επισημασμένη επιχείρημα έχει ως αποτέλεσμα διαφορετικές επιστροφή;

ψήφοι
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

Θα πρέπει να έχει τουλάχιστον μία παράμετρο θέσης, όταν υπάρχουν προαιρετικά επισημαίνονται επιχειρήματα (ή όπως στην περίπτωσή σας, τα επιχειρήματα με μια προκαθορισμένη παράμετρο). Διαφορετικά Λόγος αναμένει από εσάς που θέλετε να χρησιμοποιήσετε τη μερική εφαρμογή λειτουργία.

Για να διασφαλιστεί η πλήρης εφαρμογή, χρησιμοποιήστε μια μονάδα ()τόσο στη δήλωση λειτουργία και τη λειτουργία επίκληση για να πει ο compiler που θέλετε να παραλείψετε την ~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