Guia rápido

Tipos de dados

  • Número: ponto flutuante de 64 bits.
  • Texto: sequência imutável de caracteres UTF-8.
  • Lista: coleção ordenada e heterogênea.
  • Dicionário: coleção chave-valor.
  • Booleano: verdadeiro ou falso.
  • Intervalo: sequência numérica definida com até.
  • Função: cidadão de primeira classe.
  • Data: data e hora com fusos horários.
  • Nada: ausência de valor.

Variáveis e funções

Declaração de variável:

Declaração de função:

Declarando funções estruturadas:

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

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

    retorna total
  fim

Função anônima:

seja dobra = função(x) -> x * 2

Estruturas de controle

Condicional

se idade >= 18 então
  exiba("Maior de idade.")
senão
  exiba("Menor de idade.")
fim

Laço para cada

para cada i em 1 até 5 faça
  exiba(i)
fim

Laço enquanto

seja contador = 1

enquanto contador <= 5 faça
  exiba(contador)
  contador = contador + 1
fim

Controle de fluxo

continua pula a iteração atual, para interrompe o laço:

seja i = 0

enquanto i < 10 faça
  i = i + 1

  se i é 5 então
    continua
  fim

  exiba(i)
fim

Operações e expressões

  • Matemáticas: +, -, *, /, %, ^
  • Comparação: >, <, >=, <=, é, não é
  • Lógicas: e, ou, não
  • Concatenação: + (texto e lista)
  • Intervalo: 1 até 10
  • Pertencimento: tem, não tem

Tratamento de erros

Funções que podem falhar retornam um dicionário com "valor" ou "erro". Use tem para verificar se ocorreu erro.

seja resultado = Texto.para_número("abc")

se resultado tem "erro" então
  exiba("Erro: entrada inválida.")
senão
  exiba("Número: " + resultado.valor)
fim

Prelúdio

O prelúdio fornece funções básicas que são carregadas automaticamente.

  • Entrada e Saída: exiba, leia, entrada
  • Lista: Lista.tamanho, Lista.insira, etc.
  • Matemática: constantes e funções como Matemática.absoluto, Matemática.aleatório
  • Texto: manipulação e conversão de texto
  • Arquivo: manipulação segura de arquivos
  • Data: manipulação e conversão de datas
  • Programa: Programa.argumentos, Programa.encerra, Programa.espera