Skip to content

Commit 1cfd6df

Browse files
committed
translated until line 181
1 parent 06f3211 commit 1cfd6df

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

1-js/99-js-misc/03-currying-partials/article.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ let curriedSum = curry(sum);
3636
alert( curriedSum(1)(2) ); // 3
3737
```
3838

39-
După cum puteți vedea, implementarea este directă: este vorba doar de două wrappere.
39+
După cum puteți vedea, implementarea este directă: este vorba doar de două învelișuri.
4040

41-
- Rezultatul lui `curry(func)` este un wrapper `function(a)`.
42-
- Atunci când este apelat ca `currySum(1)`, argumentul este salvat în mediul lexical și se returnează un nou wrapper `function(b)`.
43-
- Apoi, acest wrapper este apelat cu `2` ca argument, iar apelul este transmis către `sum` original.
41+
- Rezultatul lui `curry(func)` este un înveliș `function(a)`.
42+
- Atunci când este apelat ca `currySum(1)`, argumentul este salvat în mediul lexical și se returnează un nou înveliș `function(b)`.
43+
- Apoi, acest înveliș este apelat cu `2` ca argument, iar apelul este transmis către `sum` original.
4444

45-
Implementările mai avansate de currying, cum ar fi [_.curry](https://lodash.com/docs#curry) din biblioteca lodash, returnează un wrapper care permite ca o funcție să fie apelată atât în mod normal, cât și parțial:
45+
Implementările mai avansate de currying, cum ar fi [_.curry](https://lodash.com/docs#curry) din biblioteca lodash, returnează un înveliș care permite ca o funcție să fie apelată atât în mod normal, cât și parțial:
4646

4747
```js run
4848
function sum(a, b) {
@@ -109,11 +109,11 @@ Deci:
109109
1. Nu am pierdut nimic după curry: `log` este încă apelabil în mod normal.
110110
2. Putem genera cu ușurință funcții parțiale, cum ar fi pentru logurile de astăzi.
111111

112-
## Advanced curry implementation
112+
## Implementarea curry avansată
113113

114-
In case you'd like to get in to the details, here's the "advanced" curry implementation for multi-argument functions that we could use above.
114+
În cazul în care doriți să intrați în detalii, iată implementarea curry "avansată" pentru funcții cu argumente multiple pe care am putea-o folosi mai sus.
115115

116-
It's pretty short:
116+
Este destul de scurtă:
117117

118118
```js
119119
function curry(func) {
@@ -131,7 +131,7 @@ function curry(func) {
131131
}
132132
```
133133

134-
Usage examples:
134+
Exemple de utilizare:
135135

136136
```js
137137
function sum(a, b, c) {
@@ -140,17 +140,17 @@ function sum(a, b, c) {
140140

141141
let curriedSum = curry(sum);
142142

143-
alert( curriedSum(1, 2, 3) ); // 6, still callable normally
144-
alert( curriedSum(1)(2,3) ); // 6, currying of 1st arg
145-
alert( curriedSum(1)(2)(3) ); // 6, full currying
143+
alert( curriedSum(1, 2, 3) ); // 6, încă apelabil în mod normal
144+
alert( curriedSum(1)(2,3) ); // 6, curry de la primul argument
145+
alert( curriedSum(1)(2)(3) ); // 6, currying complet
146146
```
147147

148-
The new `curry` may look complicated, but it's actually easy to understand.
148+
Noul `curry` poate părea complicat, dar este de fapt ușor de înțeles.
149149

150-
The result of `curry(func)` call is the wrapper `curried` that looks like this:
150+
Rezultatul apelului `curry(func)` este învelișul `curried` care arată astfel:
151151

152152
```js
153-
// func is the function to transform
153+
// func este funcția de transformat
154154
function curried(...args) {
155155
if (args.length >= func.length) { // (1)
156156
return func.apply(this, args);
@@ -162,23 +162,23 @@ function curried(...args) {
162162
};
163163
```
164164

165-
When we run it, there are two `if` execution branches:
165+
Când îl rulăm, există două ramuri de execuție `if`:
166166

167-
1. If passed `args` count is the same or more than the original function has in its definition (`func.length`) , then just pass the call to it using `func.apply`.
168-
2. Otherwise, get a partial: we don't call `func` just yet. Instead, another wrapper is returned, that will re-apply `curried` providing previous arguments together with the new ones.
167+
1. Dacă numărul de `args` transmis este același sau mai mare decât numărul de funcții originale din definiția sa (`func.length`) , atunci doar transmite apelul la aceasta folosind `func.apply`.
168+
2. În caz contrar, obține o parțială: nu apelăm `func` deocamdată. În schimb, este returnat un alt înveliș, care va aplica din nou `curried` furnizând argumentele anterioare împreună cu cele noi.
169169

170-
Then, if we call it, again, we'll get either a new partial (if not enough arguments) or, finally, the result.
170+
Apoi, dacă îl apelăm, din nou, vom obține fie un nou parțial (dacă nu sunt suficiente argumente), fie, în final, rezultatul.
171171

172-
```smart header="Fixed-length functions only"
173-
The currying requires the function to have a fixed number of arguments.
172+
```smart header="Numai funcții cu lungime fixă"
173+
Currying necesită ca funcția să aibă un număr fix de argumente.
174174
175-
A function that uses rest parameters, such as `f(...args)`, can't be curried this way.
175+
O funcție care utilizează parametri rest, cum ar fi `f(...args)`, nu poate fi curryată în acest mod.
176176
```
177177

178-
```smart header="A little more than currying"
179-
By definition, currying should convert `sum(a, b, c)` into `sum(a)(b)(c)`.
178+
```smart header="Un pic mai mult decât currying"
179+
Prin definiție, currying ar trebui să convertească `sum(a, b, c)` în `sum(a)(b)(c)`.
180180
181-
But most implementations of currying in JavaScript are advanced, as described: they also keep the function callable in the multi-argument variant.
181+
Dar majoritatea implementărilor de currying în JavaScript sunt avansate, așa cum este descris: ele de asemenea păstrează funcția apelabilă și în varianta cu mai multe argumente.
182182
```
183183

184184
## Summary

0 commit comments

Comments
 (0)