Skip to content

Commit 4b7cfb4

Browse files
committed
translated task 5
1 parent 23d8abb commit 4b7cfb4

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

Diff for: 1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/_js.view/source.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
function sum(a){
2-
// Your code goes here.
2+
// Codul vostru aici.
33

44
}
55

Diff for: 1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/solution.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
1. For the whole thing to work *anyhow*, the result of `sum` must be function.
3-
2. That function must keep in memory the current value between calls.
4-
3. According to the task, the function must become the number when used in `==`. Functions are objects, so the conversion happens as described in the chapter <info:object-toprimitive>, and we can provide our own method that returns the number.
2+
1. Pentru ca totul să funcționeze *oricum*, rezultatul lui `sum` trebuie să fie o funcție.
3+
2. Funcția respectivă trebuie să păstreze în memorie valoarea curentă între apeluri.
4+
3. Conform sarcinii, funcția trebuie să devină număr atunci când este folosită în `==`. Funcțiile sunt obiecte, deci conversia are loc așa cum este descrisă în capitolul <info:object-toprimitive>, iar noi putem furniza propria noastră metodă care returnează numărul.
55

6-
Now the code:
6+
Acum codul:
77

88
```js demo run
99
function sum(a) {
@@ -28,28 +28,28 @@ alert( sum(6)(-1)(-2)(-3) ); // 0
2828
alert( sum(0)(1)(2)(3)(4)(5) ); // 15
2929
```
3030

31-
Please note that the `sum` function actually works only once. It returns function `f`.
31+
Vă rugăm să rețineți că funcția `sum` funcționează de fapt o singură dată. Ea returnează funcția `f`.
3232

33-
Then, on each subsequent call, `f` adds its parameter to the sum `currentSum`, and returns itself.
33+
Apoi, la fiecare apelare ulterioară, `f` adaugă parametrul său la suma `currentSum` și se returnează pe sine.
3434

35-
**There is no recursion in the last line of `f`.**
35+
**Nu există recursivitate în ultima linie a funcției `f`.**
3636

37-
Here is what recursion looks like:
37+
Iată cum arată recursivitatea:
3838

3939
```js
4040
function f(b) {
4141
currentSum += b;
42-
return f(); // <-- recursive call
42+
return f(); // <-- apel recursiv
4343
}
4444
```
4545

46-
And in our case, we just return the function, without calling it:
46+
Și în cazul nostru, returnăm doar funcția, fără să o apelăm:
4747

4848
```js
4949
function f(b) {
5050
currentSum += b;
51-
return f; // <-- does not call itself, returns itself
51+
return f; // <-- nu se apelează pe sine, se returnează pe sine
5252
}
5353
```
5454

55-
This `f` will be used in the next call, again return itself, as many times as needed. Then, when used as a number or a string -- the `toString` returns the `currentSum`. We could also use `Symbol.toPrimitive` or `valueOf` here for the conversion.
55+
Acest `f` va fi folosit în apelul următor, returnându-se din nou pe sine, de câte ori este nevoie. Apoi, atunci când este folosit ca număr sau șir --- `toString` returnează `currentSum`. De asemenea am putea folosi `Symbol.toPrimitive` sau `valueOf` aici pentru conversie.

Diff for: 1-js/06-advanced-functions/06-function-object/5-sum-many-brackets/task.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ importance: 2
22

33
---
44

5-
# Sum with an arbitrary amount of brackets
5+
# Sumă cu un număr arbitrar de paranteze
66

7-
Write function `sum` that would work like this:
7+
Scrieți funcția `sum` care ar funcționa astfel:
88

99
```js
1010
sum(1)(2) == 3; // 1 + 2
@@ -14,4 +14,4 @@ sum(6)(-1)(-2)(-3) == 0
1414
sum(0)(1)(2)(3)(4)(5) == 15
1515
```
1616

17-
P.S. Hint: you may need to setup custom object to primitive conversion for your function.
17+
P.S. Sugestie: este posibil să fie nevoie să configurați o conversie personalizată de la obiect la primitivă pentru funcția dvs.

0 commit comments

Comments
 (0)