
**Exemple 2 :**

Les chunks peuvent être **injecté** dans d'autres chunk avec la syntaxe ``<< nomduchunk >>` : 

```{{r, func-full-more}}
<<func-def>>
if (x > 10){
  x <- x + 1
<<func-body1>>
}  else {
  x <- x * 2
  <<func-body2>>
  }
<<func-end>
```

sera reconstruit en : 

```{r, func-full-more-lp}
<<func-def>>
if (x > 10){
  x <- x + 1
<<func-body1>>
}  else {
  x <- x * 2
  <<func-body2>>
  }
<<func-end>>
```

Le calcul  fait est simplement  `return` : {x + 1}.

```{r, func-result, eval=TRUE, echo=FALSE}
result1 <- add_one(5)
result2 <- add_one(15)
```

Donc pour la  valeur **5** le résultat renvoyé est  : `{r} result1`
Donc pour la  valeur **15** le résultat renvoyé est  : `{r} result2`

Si on veut rentrer plus dans le détail, ici nous avons l'entête de la fonction : 

```{r, func-def, eval=FALSE}
add_one = function(x) {
```

Les deux types de calculs qui sont fait : 

```{r, func-body1, eval = FALSE}
  return(x + 5)
```

```{r, func-body2, eval = FALSE}
  return(x + 10)
```

Et surtout on oublie pas de fermer la parenthèse ! 

```{r, func-end, eval=FALSE}
}
```


