Escolar Documentos
Profissional Documentos
Cultura Documentos
Aclaraciones
(*)Significaqueslofuncionaparalistas(Wollok)
(**)SignificaqueestdeclaradaenData.List(Haskell)
(***)Significaqueeltipopresentadoacesunaversinsimplificadadeltiporeal(Haskell)
NAsignificaNoAplica.Enotraspalabras,onoexisteonoserecomiendasuuso.
Elementos Comunes
Comentarios
Wollok
Haskell
Prolog
//uncomentario
/*uncomentario
multilnea*/
uncomentario
{uncomentario
multilnea}
%uncomentario
/*Uncomentario
multilnea*/
Valores Literales
Wollok
Haskell
Prolog
Strings
uNaCadEna
uNaCadEna
uNaCadEna
NA
Caracteres
NA
NA
Smbolos/tomos
NA
NA
unAtomo
Booleanos
truefalse
TrueFalse
NA
Coleccin/Lista
[1,2,3](Lista)
#{1,2,3}(Set)
[1,2,3]
1:2:3:[]
[1,2,3][1,bart,[]]
[1|[2|[3|[]]]]
Tuplas
NA
(1,True,[1,2])
NA
Data/Functores
NA
Constructor1True
nombreFunctor(1,unAtomo)
Bloques/Funciones
Annimas
{param1,param2=>
cuerpo}
\param1param2>cuerpo NA
Wollok
Haskell
Prolog
Equivalencia
==
==
NA
Identidad
===
NA
NA
~Equivalencia
!=
/=
\=
Comparacindeorden
>>=<<=
>>=<<=
>>=<=<
Disyuncin(Olgico)
||
||
NA
Conjuncin(Ylgico)
&&
&&
Negacin
!unBool
unBool.negate()
notunBool
notunBool
not(Consulta)
GuadeLenguajesv2.1Pgina1de4
Operadores matemticos
Wollok
Haskell
Prolog(slousandois)
Operadoresaritmticos
comunes
+*/
+*/
+*/
Divisinentera
dividendoEntero/
divisor
divdividendodivisor
dividendo//divisor
Resto
dividendo%divisor
moddividendodivisor
dividendomoddivisor
Valorabsoluto
unNro.abs()
absunNro
abs(Nro)
Exponenciacin
base**exponente
base^exponente
base**exponente
Razcuadrada
NA
sqrtunNro
sqrt(Nro)
Mximomnimoentredos
nmeros
unNro.max(otroNro)
unNro.min(otroNro)
maxunNrootroNro
minunNrootroNro
NA
Bloques / Lambdas
Wollok
Haskell
Sinparmetros
{loquequierohacer}
NA
Deunparmetro
{x=>loquequierohacerconx}
(\x>loquequierohacerconx)
Msdeunparmetro
{x,y=>algoconxey}
(\xy>algoconxey)
Haskell
Prolog
Listas
[]
(cabeza:cola)
(cabeza:segundo:cola)
[]
[Cabeza|Cola]
[Cabeza,Segundo|Cola]
Tuplas
(componente1,componente2)
NA
Data/Functores
Constructorcomponente1componente2 nombreFunctor(componente1,componente2)
Variableannima
Patrones
Wollok(mensajes)
Haskell(funciones)
Prolog
(predicados)
Longitud
size()
length::[a]>Int
length/2
genericLength::Numn=>[a]>n
Sabersiestvaca
isEmpty()
null
NA
Concatenacin
NA
++
append/3
Unin
NA
union(**)
union/3
Interseccin
NA
intersect(**)
intersection/3
GuadeLenguajesv2.1Pgina2de4
Accesoporndice
get(indice)
(
base0,Listas)
unaLista!!unNro
(
base0)
nth0/3
nth1/3
Pertenencia
contains(elem)
elem
member/2
Mximomnimodeun
conjuntodenmeros
NA
maximum
minimum
max_member/2
min_member/2
Sumatoriadeunconjuntode
nmeros
NA
sum
sumlist/2
Aplanarcoleccinde
colecciones/listadelistas
flatten()
concat
flatten/2
Wollok
Haskell
Sumatoriadeunconjuntodeelementos
segnunatransformacin
sum(bloqueDe1)
NA
Primerosnelementosdeunconjunto
NA
take::Int>[a]>[a]
Filtrar
filter(bloqueDe1)
filter::(a>Bool)>[a]>[a]
Transformar
map(bloqueDe1)
map::(a>b)>[a]>[b]
Todoscumplen(verdaderoparalista
vaca)
all(bloqueDe1)
all::(a>Bool)>[a]>Bool
Algunocumple(falsoparalistavaca)
any(bloqueDe1)
any::(a>Bool)>[a]>Bool
Mapearyluegoaplanar
flatMap(bloqueDe1)
concatMap::(a>[b])>[a]>[b]
Reducir/plegaraizquierda
fold(semilla,
foldl::(a>b>a)>a>[b]>a
bloqueDeSemillaYElem)foldl1::(a>a>a)>[a]>a
Reducir/plegaraderecha
NA
foldr::(b>a>a)>a>[b]>a
foldr1::(a>a>a)>[a]>a
Primerelemento
head()ofirst()
(sloLista,noSet)
head::[a]>a
ltimoelemento
NA
last::[a]>a
Cola
NA
tail::[a]>[a]
Segmentoinicial(lalistasinelltimo)
NA
init::[a]>[a]
Apareodelistas
NA
zip::[a]>[b]>[(a,b)]
zipWith::
(a>b>c)>[a]>[b]>[c]
Buscarelprimerelementoquecumpla
unacondicin
find(bloqueDe1)
find::(a>Bool)>[a]>a
findOrElse(bloqueDe1, (**)(***)
bloqueSinParametros)
Cantidaddeelementosquecumplen
unacondicin
count(bloqueDe1)
NA
Listaordenada
sortedBy(bloqueDe2)
sort::[a]>a(**)(***)
Buscarelmximoomnimosegn
criterio.
max(bloqueDe1)
min(bloqueDe1)
GuadeLenguajesv2.1Pgina3de4
(elbloquedebe
retornarunnmero)
Sinrepetidos
NA
asSet()
Paralaslistasseagreganal
final.
unaCol
.
add(
unObjeto)
Agregatodosloselementosde
otraCol
a
unaCol.P
aralas
listasseagreganalfinal.
unaCol
.
addAll(
otraCol
)
Ejecuta
unBloque
conefectocolateralparacadaelemento
de
unaCol.
unaCol
.
forEach(
unBloque
)
Elimina
unObjeto
de
unaCol.
unaCol
.
remove(
unObjeto
)
Eliminatodosloselementosde
unaCol
.
unaCol.
clear()
Utiliza
unBloque
,querecibedosparmetrosayby
devuelveunbooleano,parareordenarlalista.Unelemento
delalistaaseranteriorabsielbloqueseevalaa
verdadero.
unaLista.
sortBy(
unBloque
)
Funciones de Haskell
Operaciones sobre funciones
Aplicaunafuncinconunvalor(conmenor
precedenciaquelaaplicacinnormal)
($)::(a>b)>a>b
Componedosfunciones
(.)::(b>c)>(a>b)>(a>c)
Inviertelaaplicacindelosparmetrosdeuna flip::(a>b>c)>b>a>c
funcin
repeat::a>[a]
Paraiteratefx,generalalistainfinita[x,f iterate::(a>a)>a>[a]
x,f(fx),...]
Generaunalistaquerepiteunaciertacantidad replicate::Int>a>[a]
devecesalelementodado
Paracyclexs,generalalistainfinitaxs++xs cycle::[a]>[a]
++xs++...
forall(Antecedente,Consecuente)
Armarunalistaapartirdeunaconsulta
findall(Formato,Consulta,Lista)
GuadeLenguajesv2.1Pgina4de4