# Programação funcional
## Code Snippets
**Se for no VS Code tudo o que se quisere que apareça tem de levar com um print_(tipo de variavel)**
### Conditional Statemente
```ocaml=
if (valor>valor2) then retorno else retorno2;;
```
```ocaml=
if (valor>valor2) then retorno
else if(valor<valor2) then retorno2 else retorno 3
```
### Atribuição de Variáeis
```ocaml=
let nome_variavel=valor;;
```
O resto funciona como o C(linguagem decente), ou seja, podemos criar variaveis compostas de multipliucação, soma, divisão etc de outras variaveis
### Funções
```ocaml=
let funcao (input1: int) (input2: int) :int=
input1*input2;;
```
Para usar a função
```ocaml=
funcao valor_1 valor_2
```
__Outra forma de fazer__
```ocaml=
let teste (input1: int) (intput2: int) : int=
let produto=input1*input2 in
produto;;
```
### Patern Matching
```ocaml=
let nome_função (x: int) :string =
match x with
| 0 -> "true"
| _(simboliza qualquer valor) -> "false"
;;
```
### Listas
```ocaml=
[a;b;c](qualquer uma das letras representa
um valor no qual todos têm de ser do mesmo tipo)
val x : int list = [a;b;c]
```
Para adicionar membros a uma lista é fazer ```d::[a;b;c]```
### Loops
```ocaml=
for variable = start_value to end_value do
expression
done
for variable = start_value downto end_value do
expression
done
while boolean-condition do
expression
done
```
{"metaMigratedAt":"2023-06-15T21:16:35.733Z","metaMigratedFrom":"Content","title":"Programação funcional","breaks":true,"contributors":"[{\"id\":\"979d2e76-24e1-456e-8c62-eab66b417634\",\"add\":1419,\"del\":20}]"}