Skip to content

Commit 0067cbd

Browse files
📝 adds a bit of info about lambdas, formatting
1 parent 656b2cc commit 0067cbd

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

docs/tutorial/secao83.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
Recursão é um conceito não exclusivo do C++, onde uma função chama a si mesma até que uma condição seja alcançada.
44

55
Tudo que pode ser resolvido por loops, pode ser resolvido por recursão.
6-
Tudo que pode ser revolsido por recursão, pode ser revolsido por loops.
6+
Tudo que pode ser resolvido por recursão, pode ser resolvido por loops.
77

8-
Por que usar recursão?
8+
Por que usar recursão? Legibilidade.
99

10-
Legibilidade, algumas soluções são mais fáceis de serem expressadas por recursão.
10+
Algumas soluções são mais fáceis de serem expressadas por recursão.
1111
Assim como outras são mais fáceis através de loops.
1212

1313
# Exemplos

docs/tutorial/secao84.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
# 8.4 - Funções Lambda
22

3-
Funções lambda foram implementadas no C++11 e versões posteriores, onde podemos declarar objetos de funções em forma anônima, podendo ser utilizada em contextos assíncronos.
3+
Funções lambda foram implementadas no C++11 e versões posteriores, onde podemos declarar objetos de funções em forma anônima, normalmente utilizadas quando precisamos de uma função que não precisará existir após ser utilizada.
44

55
Sintaxe:
6+
`[]() -> T {}`
67

7-
`[]() {};`
8+
CAPTURAS `[]` <br/>
9+
PARÂMETROS `()` <br/>
10+
TIPO DO RETORNO `-> T` <br/>
11+
CORPO DA FUNÇÃO `{}`
812

9-
Chamamos uma função lambda como: `nome_variavel()`
13+
Chamamos uma função lambda da mesma forma que chamamos uma função normal: `nome_variavel()`
1014

1115
Exemplo:
16+
1217
```cpp{0}
1318
#include <iostream>
1419
#include <cstdlib>
@@ -24,10 +29,7 @@ int main(int argc, const char **argv)
2429
2530
int a(3), b(5);
2631
27-
/* auto significa irá idenficar o que se retorna ou o que é associavel
28-
* neste caso precisamos utilizar auto,pois soma se associa com: class lambda[] int (int n1, int n2) -> int
29-
* Iremos ter uma seção específica apenas para a keyword auto, não se preocupe com isso.
30-
*/
32+
/* Quando criamos uma lambda, precisamos usar 'auto', pois o tipo de cada função é único. */
3133
3234
auto soma = [](int n1, int n2) {
3335
return n1 + n2;
@@ -48,15 +50,15 @@ auto func()
4850
}
4951
```
5052

51-
Também podemos fazer lambda localmente para executar um determinado procedimento
53+
Também podemos criar lambdas que são executadas imediatamente. Esse tipo de função é conhecido como IILE(Immediately Invoked Lambda Expression) ou IIFE(Immediately Invoked Function Expression)
5254

5355
Exemplos:
5456

5557
```cpp{0}
5658
#include <iostream>
5759
#include <cstdlib>
5860
59-
int main(int argc,const char **argv)
61+
int main(int argc,const char **argv)
6062
{
6163
/*|--------------------------------------|
6264
*| |
@@ -70,11 +72,12 @@ int main(int argc,const char **argv)
7072
return EXIT_SUCCESS;
7173
}
7274
```
75+
7376
```cpp{0}
7477
#include <iostream>
7578
#include <cstdlib>
7679
77-
int main()
80+
int main()
7881
{
7982
/*|--------------------------------------|
8083
*| |
@@ -92,4 +95,4 @@ int main()
9295
9396
return EXIT_SUCCESS;
9497
}
95-
```
98+
```

0 commit comments

Comments
 (0)