Manual MosML
Juliene Lopes Gonzalez
Orientada por Isabel Harb Manssour
 

Structure List

 Obs: ['a list ] é uma lista de elementos do tipo 'a.

Nome Tipo Efeito
null 'a list -> bool  [null xs]  é verdadeiro se xs é nulo(nil)
hd 'a list -> 'a [hd xs] retorna o primeiro elemento de xs; se xs for nulo, retorna vazio
tl 'a list -> 'a list [tl xs] retorna todos elementos menos o primeiro; se xs for nulo, retorna vazio
last 'a list -> 'a [last xs] retorna o último elemento de xs; se xs for nulo, retorna vazio
nth 'a list * int ->'a [nth(xs,i)] retorna o i'ésimo elemento de xs, a partir de zero
take 'a list * int ->'a list [take(xs,i)] retorna os i primeiros elementos de xs
drop 'a list *int -> ' a list [drop (xs,i)] retorna o que vem depois dos i primeiros elementos
length 'a list -> int [length xs] retorna o número de elementos da lista xs
rev 'a list -> 'a list [rev xs] retrona a lista xs invertida
@ 'a list * 'a list ->'a list [xs @ ys] retorna a lista resultante da concatenação de xs com ys
concat 'a list list -> 'a list [concat xss] retorna uma lista que é a concatenação de todas as listas de xss
revAppend 'a list *'a list ->'a list [revAppend (xs,ys)] é equivalente a fazer rev xs@ys, porém é mais eficiente
app ('a-> unit)->'a list ->'a list [app f xs] aplica f aos elementos de xs, da esquerda para a direita
map ('a->'b)->'a list ->'b list [map f xs]aplica f para cada elemento x de xs, da esquerda para a direita, e retorna a lista de resultados
mapPartial ('a-> 'b option)->'a list -> 'b list [mapPartial f xs]aplica f a cada elemento de x de xs, da esquerda para a direita, e retorna a lista dos y's para os quais f(x) foi avaliado para algum y
find ('a->boll)->'a list->'a option [find p xs] aplica f para cada elemento  x de xs, da esquerda para a direita até que avaliação de p(x)  seja verdadeira; retorna algum x caso este x exista, caso contrário não retorna nada
filter ('a->boll)->'a list->'a list [filter p xs] aplica p para cada elemento x de xs, da esquerda para a direita e retorna a sublista formada por aqueles x para os quais a avaliação de p(x) foi verdadeira
partition ('a->boll)->'a list->('a list * 'a list) [partition p xs]aplica p a cada elemento x de xs, da esquera para a direita, e retorna um par(pos,neg) onde pos é uma sublista com elementos x para os quais p(x) foi avaliado como verdadeiro, e neg é uma sublista composta daqueles x para os quais p(x) foi avaliado como falso.
foldr ('a * b'->'b)->'b -> 'a list ->b' [foldr op% e xs] avalia x1 %(x2%(..%(x(n-1)%(xn%e))...)), onde xs =[x1,x2,...,x(n-1),xn], e % é examinado para ser  infixado.
foldl ('a * b'->'b)->'b -> 'a list ->b' [foldl op %   e xs]avalia x1 % (x2 % ( ... % (x(n-1) % (xn % e)) ... )), onde xs =[x1,x2,...,x(n-1),xn], e % é determinado para ser infixado
exists ('a ->bool) -> 'a list -> bool [ exists p xs] aplica p para cada elemento x de xs, da esquerda para a direita até que o valor de p(x) seja verdadeiro; retorna verdadeiro caso existir tal x e falso caso contrário
all ('a ->bool) -> 'a list -> bool [all p xs] aplica p para cada elemento x de xs, da esquerda para a direita até que o valor de p(x) seja falso; retorna falso caso exista um x, e verdadeiro caso contrário
tabulate int * (int -> 'a) -> 'a list [ tabulate (n,f)]retorna uma lista de tamanho n cujos elementos são f(0),f(1),....,f(n-1), criada da esquerda para direita; há aumento no tamanho quando n<0
getItem 'a list -> ('a * 'a list) [getItem xs] usado para extrair um elemento da lista xs; nada é retornado se xs é vazia e retorna algum(x,xr)  se xs= x::xr; isto pode ser usado para percorrer booleanos, inteiros, reais e uma lista de caracteres

 

[Bibliotecas Moscow ML]         [Manual Mosml]

 ../Imagens/EMBAN15.GIF (1469 bytes)

../Imagens/E-MAIL.JPG (3237 bytes) Comentários, dúvidas, sugestões, envie um mail para Juliene ou para Isabel

../Imagens/EMBAN15.GIF (1469 bytes)

Última alteração em 10 de Outubro de 2000.