Skip to content

Commit f0567b6

Browse files
Update solution.md
added solution translation for `generators`
1 parent 398a8a5 commit f0567b6

1 file changed

Lines changed: 21 additions & 2 deletions

File tree

  • 1-js/12-generators-iterators/1-generators/01-pseudo-random-generator
Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,57 @@
11
```js run demo
2+
23
function* pseudoRandom(seed) {
4+
35
let value = seed;
46

57
while(true) {
8+
69
value = value * 16807 % 2147483647;
10+
711
yield value;
12+
813
}
914

1015
};
1116

1217
let generator = pseudoRandom(1);
1318

1419
alert(generator.next().value); // 16807
20+
1521
alert(generator.next().value); // 282475249
22+
1623
alert(generator.next().value); // 1622650073
24+
1725
```
1826

19-
Please note, the same can be done with a regular function, like this:
27+
28+
توجه داشته باشید که این کار را با توابع عادی هم می‌توان انجام داد:
2029

2130
```js run
31+
2232
function pseudoRandom(seed) {
33+
2334
let value = seed;
2435

2536
return function() {
37+
2638
value = value * 16807 % 2147483647;
39+
2740
return value;
41+
2842
}
43+
2944
}
3045

3146
let generator = pseudoRandom(1);
3247

3348
alert(generator()); // 16807
49+
3450
alert(generator()); // 282475249
51+
3552
alert(generator()); // 1622650073
53+
3654
```
3755

38-
That also works. But then we lose ability to iterate with `for..of` and to use generator composition, that may be useful elsewhere.
56+
57+
این گونه هم کار می‌کند. منتها قابلیت iterate کردن با `for..of` و generator composition از دست می‌رود که ممکن است جای دیگری مفید باشند.

0 commit comments

Comments
 (0)