Prelude Functions

Prelude Functions são as mais importantes funções do Prelude AdvPL. Elas são basicamente responsáveis por toda manipulação de dados que ocorre. Estão definidas no núcleo da biblioteca e possuem uma sintaxe própria para uso.

Bool @All { Block, Array }

Retorna verdadeiro se todos os itens na lista são verdadeiros quando aplicados ao teste.

Bool @AndList { Array }

Retorna falso se qualquer item na lista é falso. Caso contrário, retorna verdadeiro.

Bool @Any { Block, Array }

Retorna verdadeiro se quaisquer dos itens da lista são verdadeiros. Caso contrário, retorna falso.

Array @Compact { Array }

Retorna uma lista contendo apenas os valores verdadeiros da lista recebida.

Array @Concat { Array }

Concatena uma lista de listas juntas, a um nível 1 de imersão.

Array @Each { Block, Array }

Aplica um bloco para cada elemento na lista e retorna a lista original. Retorna a própria lista, comumente utilizada para efeitos colaterais.

Array @EachIndex { Block, Array }

Similar, quase o mesmo comportamento que a função @Each, mas aplica-se com dois parâmetros, o elemento em questão e o índice deste. Isso é útil quando realmente precisa-se saber a posição em que o elemento se encontra.

Number @ElemIndex { Mixed, Array }

Retorna o índice da primeira ocorrência do elemento em questão. Retorna nulo caso nenhum elemento como o passado seja encontrado.

Array @ElemIndices { Mixed, Array }

Retorna uma array contendo todos os índices que correspondem ao elemento em questão. Retorna um array vazio caso nenhum elemento seja encontrado.

Bool @Even { Number }

Retorna se o número dado é par.

Array @Explode { String }

Transforma uma string em um array de caracteres.

Array @Filter { Block, Array }

Retorna uma nova lista composta de todos os itens que passam no teste do bloco dado.

Mixed @Find { Block, Array }

Retorna o primeiro item que passa no teste do bloco dado. Retorna nula caso todos os elementos falhem na aplicação do teste.

Number @FindIndex { Block, Array }

Retorna o índice do primeiro elemento a passar no predicado. Retorna nulo caso nenhum dos elementos passe no teste em questão.

Array @FindIndices { Block, Array }

Retorna um array contendo os índices dos elementos a passarem no predicado. Caso nenhum elemento passe no teste, retorna um array vazio.

Number @GCD { Number, Number }

Retorna um máximo denominador comum de dois números.

Mixed @Head { Array }

Retorna o primeiro item de um array.

Mixed @Id { Mixed }

Retorna o próprio elemento. Útil como placeholder.

Array @Initial { Array }

Retorna todos os itens de uma lista, exceto o último.

Number @LCM { Number, Number }

Retorna o mínimo múltiplo comum de dois números.

Array @Map { Block, Array }

Aplica um bloco para cada item em uma lista e produz uma nova lista com os resultados. O tamanho da lista retornada é igual ao da lista dada.

Array @MapIndex { Block, Array }

Quase o mesmo que @Map, contudo, aplica-se com dois parâmetros, ambos o item e o índice. É útil quando realmente precisa-se conhecer a posição onde o elemento se encontra. Retorna a lista modificada.

Mixed @Maximum { Array }

Percorre uma lista de itens comparáveis e retorna o maior deles.

Number @Mean { Array }

Retorna a média dos valores de uma lista.

Mixed @Minimum { Array }

Percorre uma lista de itens comparáveis e retorna o menos deles.

Number @Negate { Number }

A negação de um dado número.

Bool @Odd { Number }

Retorna se o dado número é ímpar.

Bool @OrList { Array }

Retorna verdadeiro se qualquer item da lista é verdadeiro. Caso contrário, retorna falso.

Array @Partition { Block, Array }

Equivalente a { @Filter { f, xs }, @Reject { f, xs } }, mas mais eficiente, utilizando apenas um loop.

Number @Pi { }

Retorna os 16 primeiros números de pi.

Number @Product { Array }

Obtém o produto de todos os itens na lista.

Array @Range { Number, Number }

Recebe dois valores inteiros e retorna um array dentro daquele intervalo.

Number @Recipe { Number }

Retorna 1 divido pelo valor dado.

Array @Reject { Block, Array }

Como @Filter, mas a nova lista é composta de todos os itens que falham no teste da função.

Array @Reverse { Array }

Reverte e retorna uma lista.

Number @SigNum { Number }

Toma um número e retorna -1, 0 ou 1, isto dependendo do operador unário em questão do número (-, 0, +).

Array @Slice { Number, Number, Array }

Corta uma lista e retorna o pedaço dela, recebendo os valores inicial e final e a lista a ser cortada.

Array @Sort { Array }

Organiza em ordem ascendente uma lista. Não modifica a entrada.

Array @StepRange { Number, Number, Number }

Recebe três inteiros e retorno um array indo do primeiro número até o segundo e seguindo um intervalo do terceiro menos o primeiro.

Number @Sum { Array }

Soma todos os itens de uma lista e os retorna.

Array @Split { String, String }

Recebe um delimitador e uma string. Retorna um array separando a string pelo dado delimitador.

String @Stringify { Array }

Transforma um array de caracteres em uma string.

Array @Tail { Array }

Retorna todos, menos o último item de uma lista.

Array @Take { Number, Array }

Obtém os primeiros n elementos de uma lista.

Array @TakeWhile { Block, Array }

Obtém os primeiros elementos da lista até que algum deles falhe no teste do dado bloco.

Number @Tau { }

Retorna o valor de tau, isto é, 2 * pi.

Array @Zip { Array, Array }

Une elementos de duas listas de mesmo tamanho. Útil para simular dicionários.

Array @ZipWith { Block, Array, Array }

Une elementos de duas listas de mesmo tamanho aplicando um bloco a elas. Retorna um único array contendo o resultado.