Funções (resolve)

Funções (resolve)

js
resolve soma(a, b) {
  volta a + b
}

cria r = soma(2, 3)
grita-ae(r)  // 5

volta (return)

js
resolve ehPar(n) {
  volta n % 2 == 0
}

grita-ae(ehPar(4))   // verdadeiro
grita-ae(ehPar(7))   // falso

Funções tipadas

js
resolve soma(a: eh-numero, b: eh-numero): eh-numero {
  volta a + b
}

Funções genéricas

js
resolve identidade<T>(x: T): T {
  volta x
}

grita-ae(identidade(42))
grita-ae(identidade("olá"))

Arrow functions

js
cria dobrar = (x) => x * 2
cria somar = (a, b) => { volta a + b }

grita-ae(dobrar(21))  // 42

Arrow async

js
cria buscar = assincrono (url) => {
  volta stalkeia(url)
}

Funções de primeira classe

Funções podem ser passadas como argumento:

js
resolve aplicar(fn, valor) {
  volta fn(valor)
}

grita-ae(aplicar((x) => x * 10, 4))  // 40

Closures

js
resolve criarContador() {
  cria count = 0
  volta () => {
    count = count + 1
    volta count
  }
}

cria c = criarContador()
grita-ae(c())  // 1
grita-ae(c())  // 2
grita-ae(c())  // 3