Tipos nativos
A Pseudo-IDE tem sete tipos de dados primitivos e sete tipos de objetos. Funções de biblioteca que retornam coleções usam sempre os tipos objeto nativos — nunca arrays ou objetos JS puros.
Tipos primitivos
| Tipo | Descrição | Exemplo |
|---|---|---|
| inteiro | Número inteiro de 64 bits | inteiro x = 42 |
| real | Ponto flutuante IEEE 754 | real pi = 3.14 |
| numero | Qualquer número (inteiro ou real) | usado em parâmetros |
| booleano | verdadeiro ou falso | booleano ok = verdadeiro |
| caracter | Cadeia de texto | caracter s = "olá" |
| vazio | Ausência de valor (null) | retorno vazio |
| indefinido | Variável não atribuída | m.eIndefinido(x) |
Tipos objeto
| Tipo | Acesso | Criação | Descrição |
|---|---|---|---|
| Lista | x[i] ou x.obter(i) | m.lista(...) | Lista ordenada e mutável. Índice começa em 0. |
| Mapa | x.obter(chave) | m.mapa() | Dicionário chave→valor. |
| Conjunto | x.tem(v) | m.conjunto() | Coleção de valores únicos. |
| Vetor | x[i] ou x.obter(i) | m.vetor([...]) | Vetor N-dimensional de números. |
| Matriz | x.obter(i,j) | m.matriz([[...]]) | Matriz M×N de números. |
| Caracter | via métodos | m.caracter(v) | Objeto string com métodos de texto. |
| Numero | via métodos | m.numero(v) | Wrapper numérico com fatoração e arredondamento. |
Operador de range a...b
Cria um array de inteiros de a até b inclusive. Passo automático (+1 ou −1). Ideal para construir listas/conjuntos/vetores dinamicamente.
Spread nativo
...arr funciona como spread JS nativo dentro de arrays literais e chamadas de função.
Funções globais
Disponíveis sem importação em qualquer programa Pseudo.
aguardar ou em contexto assíncrono (injetado automaticamente pelo compilador).0 até fim-1 (exclusivo). Análogo ao range() do Python.| Parâmetro | Tipo | Descrição |
|---|---|---|
| fim | numero | Limite superior (exclusivo). Passo = 1 se positivo, −1 se negativo. |
| inicio opc | numero | Valor inicial. Quando fornecido muda a assinatura para intervalo(inicio, fim). |
| passo opc | numero | Incremento (pode ser decimal ou negativo). Não pode ser zero. |
passo = 0.Métodos de classe
Cada tipo objeto tem métodos acessados via ponto. Os construtores estão em metodos.
Lista
Acesso por índice: lista[i] (atalho) ou lista.obter(i). Índice começa em 0.
| Método | Retorno | Descrição |
|---|---|---|
| adicionar(item) | Lista | Insere no final. Retorna this para encadeamento. |
| remover(item) | Lista | Remove primeira ocorrência de item. |
| obter(i: inteiro) | qualquer | Elemento no índice i. Lança erro se fora do intervalo. |
| tamanho() | inteiro | Número de elementos. |
| retirar(indice: inteiro) | Lista | Remove o elemento naquele índice. Lança erro se fora do intervalo. |
| ordenar(modo?: inteiro) | Lista | Ordena in-place. 0 = crescente (padrão), 1 = decrescente. |
| organizar(comparador) | Lista | Ordena in-place usando comparador(a, b), que deve retornar -1, 0 ou 1. Suporta funções async. |
| inverter() | Lista | Inverte a ordem in-place. |
| permutar(i: inteiro, j: inteiro) | Lista | Troca os valores das posições i e j in-place. |
| sublista(comeco: inteiro, fim: inteiro) | Lista | Nova Lista com o intervalo fechado [comeco, fim] — o elemento em fim é incluído. |
| primeiro() | qualquer | Primeiro elemento. Lança erro se a lista estiver vazia. |
| ultimo() | qualquer | Último elemento. Lança erro se a lista estiver vazia. |
| contem(item) | booleano | Verifica se item está na lista. |
| contar(elemento) | inteiro | Quantas vezes elemento aparece. Retorna 0 se ausente. |
| indiceDe(elemento) | inteiro | Índice da primeira ocorrência, ou -1 se ausente. |
| juntar(separador, autoEspacar?: booleano) | caracter | Une os elementos com separador. Com autoEspacar = verdadeiro, insere espaços ao redor: "a - b - c". |
| transformar(fn) | Lista | Aplica fn(v) a cada elemento. Suporta funções async. |
| filtrar(predicado) | Lista | Mantém elementos onde predicado(v) é verdadeiro. |
| reduzir(fn, inicial?) | qualquer | Acumula resultado chamando fn(acum, v). inicial é opcional. |
| percorrer(fn) | vazio | Chama fn(v, i) para cada elemento (para efeitos colaterais). |
| clonar() | Lista | Cópia profunda — o clone não compartilha referência com o original. |
| limpar() | Lista | Remove todos os elementos in-place. |
Mapa
| Método | Retorno | Descrição |
|---|---|---|
| definir(chave, valor) | Mapa | Insere ou atualiza entrada. Chave pode ser qualquer tipo. |
| obter(chave) | qualquer | Valor associado à chave, ou indefinido se ausente. |
| remover(chave) | Mapa | Remove a entrada com aquela chave. |
| tem(chave) | booleano | Verifica existência da chave. |
| clonar() | Mapa | Cópia profunda — o clone não compartilha referência com o original. |
| limpar() | Mapa | Remove todas as entradas in-place. |
Conjunto
| Método | Retorno | Descrição |
|---|---|---|
| adicionar(v) | Conjunto | Insere valor (ignorado se já existir). |
| remover(v) | Conjunto | Remove o valor. |
| tem(v) | booleano | Verifica pertinência. |
| tamanho() | inteiro | Número de elementos únicos. |
| uniao(outro: Conjunto) | Conjunto | Retorna A ∪ B como novo Conjunto. |
| intersecao(outro: Conjunto) | Conjunto | Retorna A ∩ B como novo Conjunto. |
| diferenca(outro: Conjunto) | Conjunto | Retorna A − B como novo Conjunto. |
| produtoCartesiano(outro: Conjunto) | Conjunto | Retorna A × B: um Conjunto de Listas [a, b]. Limite de 250 000 pares. |
| partes() | Conjunto | Conjunto das partes P(A): um Conjunto com todos os 2ⁿ subconjuntos. Máximo de 16 elementos. |
| clonar() | Conjunto | Cópia profunda — o clone não compartilha referência com o original. |
| limpar() | Conjunto | Remove todos os elementos in-place. |
Vetor
Acesso por índice: v[i] (atalho) ou v.obter(i).
| Método | Retorno | Descrição |
|---|---|---|
| dimensao() | inteiro | Número de componentes. |
| obter(i: inteiro) | real | Componente na posição i. |
| soma(outro: Vetor) | Vetor | Soma componente a componente. |
| subtrair(outro: Vetor) | Vetor | Subtração componente a componente. |
| escalar(k: numero) | Vetor | Multiplica todas as componentes por k. |
| ponto(outro: Vetor) | real | Produto interno (dot product). |
| norma() | real | Norma euclidiana (comprimento). |
| normalizar() | Vetor | Retorna vetor unitário. Lança erro se norma = 0. |
| clonar() | Vetor | Cópia independente do original. |
| limpar() | Vetor | Zera todas as componentes in-place, preservando a dimensão. |
Matriz
| Método / Prop | Retorno | Descrição |
|---|---|---|
| obter(i, j) | real | Elemento na linha i, coluna j (base 0). |
| definir(linha: inteiro, coluna: inteiro, valor: numero) | Matriz | Atribui valor à posição (linha, coluna) in-place. Lança erro se fora do intervalo. |
| soma(outra: Matriz) | Matriz | Soma elemento a elemento. |
| mult(outro) | Matriz | Vetor | Multiplicação: Matriz×Matriz, Matriz×Vetor ou Matriz×escalar. |
| transposta() | Matriz | Matriz transposta. |
| determinante() | real | Determinante por eliminação de Gauss. Exige matriz quadrada. |
| clonar() | Matriz | Cópia independente do original. |
| limpar() | Matriz | Zera todos os elementos in-place, preservando as dimensões. |
| .linhas | inteiro | Número de linhas. |
| .colunas | inteiro | Número de colunas. |
Caracter
| Método | Retorno | Descrição |
|---|---|---|
| maiusculo() | Caracter | Converte para maiúsculas. |
| minusculo() | Caracter | Converte para minúsculas. |
| capitalizar() | Caracter | Primeira letra maiúscula, resto minúscula. |
| contem(s) | booleano | Verifica se o texto contém s. |
| tamanho() | inteiro | Número de caracteres. |
| inverter() | Caracter | Texto invertido. |
| aparar() | Caracter | Remove espaços no início e no fim. |
| mesclar(s) | Caracter | Concatena com s. |
| normalizar() | caracter | Forma canônica para comparação: minúsculas, sem acentos, espaços aparados e colapsados. Devolve texto puro, não um Caracter, para que a.normalizar() == b.normalizar() funcione. |
| dividir(separador) | Lista | Quebra o texto em cada ocorrência de separador e retorna uma Lista de textos. Com "", separa caractere a caractere. |
| clonar() | Caracter | Cópia independente do original. |
| limpar() | Caracter | Esvazia o texto in-place. |
Numero
| Método | Retorno | Descrição |
|---|---|---|
| sinal() | inteiro | −1 (negativo), 0 (zero) ou 1 (positivo). |
| int() | inteiro | Trunca para inteiro (remove parte decimal). |
| re() | real | Retorna o valor numérico primitivo. |
| decimal(n: inteiro) | real | Arredonda para n casas decimais. |
| fatorar() | Lista | Lista de fatores primos. Ex: 12 → [2,2,3]. |
| ePar() | booleano | verdadeiro se for par. Exige inteiro — use .int() antes se necessário. |
| ePrimo() | booleano | verdadeiro se for primo. Exige inteiro; valores < 2 retornam falso. |
| clonar() | Numero | Cópia independente do original. |
| limpar() | Numero | Zera o valor in-place. |
mat — Matemática
Funções matemáticas puras. Todas as entradas e saídas são primitivos (numero), exceto m.linspace() que retorna Lista. Não depende de nenhuma outra biblioteca.
Constantes
| Constante | Valor | Descrição |
|---|---|---|
| m.PI / m.pi | 3.14159… | π |
| m.e / m.E | 2.71828… | Número de Euler |
| m.Infinito | +∞ | Infinito positivo |
| m.NegInfinito | −∞ | Infinito negativo |
Arredondamento e conversão
a e b.a e b.Trigonometria (entrada em radianos)
arccosh: domínio [1,∞); arctanh: domínio (−1,1).Logaritmos e exponencial
base deve ser > 0 e ≠ 1.Aleatoriedade e séries
n valores igualmente espaçados de inicio a fim (ambos incluídos). Análogo ao numpy.linspace.metodos — Construtores e Tipos
Construtores de tipos objeto e verificadores de tipo. Não depende de nenhuma outra biblioteca.
Construtores de coleção
a...b.m.lista. Duplicatas são ignoradas.{0: arr[0], 1: arr[1], …}.Construtores numéricos e vetoriais
.sinal(), .fatorar(), etc.Verificadores de tipo (todos retornam booleano)
Todos os verificadores abaixo aceitam qualquer como entrada e retornam booleano.
| Função | Verdadeiro quando… |
|---|---|
| m.eNumero(v) | v é número (inteiro ou real) |
| m.eInteiro(v) | v é inteiro |
| m.eReal(v) | v é real (não inteiro) |
| m.eTexto(v) | v é string ou Caracter |
| m.eBooleano(v) | v é booleano |
| m.eLista(v) | v é instância de Lista |
| m.eMapa(v) | v é instância de Mapa |
| m.eConjunto(v) | v é instância de Conjunto |
| m.eVetor(v) | v é instância de Vetor |
| m.eMatriz(v) | v é instância de Matriz |
| m.eVazio(v) | v é null (vazio) |
| m.eIndefinido(v) | v é undefined |
calculo — Cálculo Diferencial e Integral
Operações numéricas de cálculo. Funções que recebem funcao suportam funções async (retornam Promise). Não depende de nenhuma outra biblioteca.
fn quando x → ponto (aproximação bilateral com h=10⁻⁷).ordem (padrão: 1). Usa diferenças finitas centradas.n em torno de a, avaliada em x.estatistica — Combinatória e Estatística
Todas as funções estatísticas recebem Lista de números e retornam primitivos (exceto moda). Não depende de nenhuma outra biblioteca.
tabular — Exibição e Tabelas
Exibe tabelas e visualizações no console. Aceita tanto Lista quanto arrays JS como parâmetros de coleção. Não depende de nenhuma outra biblioteca.
cabecalhos é uma lista de textos. linhas é uma lista de listas (cada sublista = uma linha da tabela).valor/max.mostrarInter exibe colunas intermediárias.tempo — Temporização e Performance
Medição de tempo de execução. Não depende de nenhuma outra biblioteca.
tp.milisegundos().fn(...args), exibe o tempo gasto no console e retorna o resultado da função. Suporta funções async.fn(n) para n = 10, 100, 1000, … até n_max e exibe tabela de tempo.graficos — Visualização
Renderiza gráficos na saída. Todas as funções retornam vazio. Aceita Lista, arrays JS e objetos de configuração (como Mapa ou objeto JS). Depende do PlotterAPI (carregado automaticamente).
dados. config.tipo pode ser "linha", "barra", "dispersao" ou "3d". config.intervalo: [xMin, xMax].[x,y] ou objetos {x,y,rotulo} em uma única lista mista.pontos é lista de pares [x,y].opcoes.intervalo controla o range em X e Y.{x: fn(t), y: fn(t), t: [tMin, tMax]}.f com marcadores anotados. Marcadores: [x] (raiz), {root: x}, {x,y} (ponto manual).probabilidade — Probabilidade e Aleatoriedade
Amostragem e simulação estocástica. Não depende de nenhuma outra biblioteca.
quantidade lançamentos de dado de faces lados. Retorna Lista de resultados.n amostras. fn(x) deve retornar booleano (se ponto está na região) ou numero (fração).algebra — Álgebra Linear e Geometria Analítica
metodos (ou use a sintaxe a...b).Os tipos
Vetor e Matriz são sempre disponíveis — a dependência é de construção, não de execução.
Todas as funções esperam e retornam Vetor ou Matriz (nunca arrays JS puros). Funções geométricas 2D aceitam vetores de dimensão ≥ 2; funções 3D exigem dimensão = 3.
Geração
n valores igualmente espaçados de inicio a fim (ambos incluídos). Pronto para operações vetoriais.Operações vetoriais
v sobre u. Lança erro se u é vetor nulo.Operações matriciais
Geometria analítica
"a", "b", "c"."a", "b", "c", "d".al.equacaoPlano).latex — Renderização de Fórmulas
Renderiza fórmulas LaTeX usando KaTeX (carregado automaticamente na primeira chamada). Todas as funções de exibição são assíncronas. Não depende de nenhuma outra biblioteca.
#"..." para evitar interpretação de barras invertidas.aligned). Aceita múltiplas expressões.arquivos — Leitura de Arquivos
Todas as funções de leitura são assíncronas (abrem um diálogo de arquivo) e retornam tipos nativos do Pseudo. Não depende de nenhuma outra biblioteca.
Opção tipo — formas de retorno de dados tabulares
| tipo | Retorno | Descrição |
|---|---|---|
| "lista" | Lista de valores | Apenas a primeira coluna. |
| "lista-mapas" (padrão) | Lista de Mapas | Cada linha é um Mapa {coluna → valor}. |
| "lista-listas" | Lista de Listas | Cada linha é uma Lista de valores. |
| "mapa-listas" | Mapa de Listas | Cada coluna é uma Lista acessível pela chave. |
| "matriz" | Matriz | Todos os valores como números (parseFloat). Use para dados 100% numéricos. |
tipo.| Opção | Padrão | Descrição |
|---|---|---|
| separador | "," | Caractere separador de colunas. |
| cabecalho | verdadeiro | Se verdadeiro, a primeira linha é usada como nomes das colunas. |
| tipo | "lista-mapas" | Formato de retorno (ver tabela acima). |
| converterNumeros | verdadeiro | Converte automaticamente strings numéricas para número. |
Lista; objetos JSON → Mapa; valores primitivos retornam como estão. A conversão é recursiva. opcoes.caminho permite navegar em subpropriedades separadas por ".".tipo="texto" → caracter com conteúdo completo. Caso contrário → Lista de linhas não-vazias, divididas pelo separador (padrão: "\n")..pdados (cabeçalho §PSEUDO-DADOS:1.0). Aceita as mesmas opções de tipo e converterNumeros que lerCSV. Lança erro se o arquivo não tiver cabeçalho válido.