Variáveis e funções

As variáveis e funções são conceitos fundamentais em qualquer linguagem de programação, e a Tenda não é exceção. Neste guia, vamos explorar como declarar variáveis, atribuir valores a elas e criar funções para organizar seu código.

Variáveis

As variáveis são usadas para armazenar dados temporariamente. Em Tenda, você pode declarar uma variável usando a palavra-chave seja. Você pode atribuir valores a variáveis de diferentes tipos, como números, texto e listas.

Exemplo de declaração de variável

seja nome = "Tenda"
seja idade = 10
seja lista = [1, 2, 3, 4, 5]

Neste exemplo, declaramos três variáveis: nome, idade e lista. A variável nome armazena um texto, idade armazena um número e lista armazena uma lista de números.

Funções

Em Tenda, funções são definidas com a palavra-chave seja. Uma função pode ser declarada de maneira simples e direta, como uma única expressão, ou de forma mais elaborada, utilizando um bloco estruturado com múltiplas instruções.

Forma simples de declarar uma função

Neste exemplo, definimos uma função chamada soma que recebe dois parâmetros (a e b) e retorna a soma deles. Essa função pode ser chamada em qualquer parte do seu código.

Forma estruturada de declarar uma função

seja soma(lista) =
  faça
    seja total = 0

    para cada i em lista faça
      total = total + i
    fim

    retorna total
  fim

Neste exemplo, definimos uma função chamada soma que recebe uma lista de números. Dentro da função, inicializamos uma variável total com 0 e, em seguida, usamos um laço para cada para iterar sobre os elementos da lista, somando-os ao total. Finalmente, retornamos o valor total.

Blocos podem ser declarados com faça mesmo fora de uma função, mas é mais comum usá-los dentro de funções.

seja a = 1
seja b = 2

faça
  seja resultado = a + b
  exiba("O resultado é: " + resultado)
fim

// Resultado não é acessível fora do bloco

Neste exemplo, declaramos duas variáveis a e b, e calculamos a soma delas dentro de um bloco. A variável resultado é acessível apenas dentro do bloco.

Chamando uma função

seja resultado = soma(10, 5)

exiba("A soma é: " + resultado)

Neste exemplo, chamamos a função soma passando os valores 10 e 5 como argumentos. O resultado da soma é armazenado na variável resultado, que é exibida na tela.

Variáveis e funções anônimas

Você também pode definir funções anônimas (funções sem nome) usando a palavra-chave função sem um nome. Essas funções podem ser atribuídas a variáveis e usadas como qualquer outra função.

Exemplo de função anônima

seja soma = função(a, b) -> a + b
seja resultado = soma(10, 5)

exiba("A soma é: " + resultado)

Neste exemplo, definimos uma função anônima e a atribuímos à variável soma. Em seguida, chamamos essa função da mesma forma que faríamos com uma função nomeada.

Funções de ordem superior

As funções de ordem superior são funções que podem receber outras funções como argumentos ou retornar funções como resultado. Isso permite criar código mais flexível e reutilizável.

Exemplo de função de ordem superior

seja aplica(fn, valor) = fn(valor)
seja dobra(x) = x * 2

seja resultado = aplica(dobra, 5)

exiba("O resultado é: " + resultado)

Neste exemplo, definimos uma função chamada aplicar que recebe uma função e um valor como argumentos. Em seguida, chamamos a função dobrar passando o valor 5, e o resultado é exibido na tela.