Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GuiaLenguajes2 0 PDF
GuiaLenguajes2 0 PDF
Aclaraciones
(*)Significaqueslofuncionaparacoleccionesconndice(Smalltalk)
(**)SignificaqueestdeclaradaenData.List(Haskell)
(***)Significaqueeltipopresentadoacesunaversinsimplificadadeltiporeal(Haskell)
NAsignificaNoAplica.Enotraspalabras,noexistenoserecomiendasuuso.
Elementos Comunes
Comentarios
Smalltalk Haskell Prolog
Valores Literales
Smalltalk Haskell Prolog
Caracteres $a a NA
Equivalencia = == NA
Identidad == NA NA
~Equivalencia ~= /= \=
~Identidad ~~ NA NA
Comparacindeorden > >= < <= > >= < <= > >= < =<
Disyuncin(Olgico) | (ansiosa) || NA
or: (perezosa)
GuadeLenguajesv2.0Pgina1de6
Operadores matemticos
Smalltalk Haskell Prolog(slocomoparte
deunis)
GuadeLenguajesv2.0Pgina2de6
Sumatoriadeunconjuntodeelementos sum: NA
segnunatransformacin
Cantidaddeocurrencias ocurrencesOf: NA
Rechazar(filtrarlosquenocumplenla reject: NA
condicion)
Reducir/plegaraizquierda inject: into: foldl :: (a -> b -> a) -> a -> [b] -> a
foldl1 :: (a -> a -> a) -> [a] -> a
Posicinenlaqueseencuentrala NA
indexOf: (*)
primeraocurrenciadeunelemento
Cantidaddeelementosquecumplenuna
count: NA
condicin
GuadeLenguajesv2.0Pgina3de6
Patrones
Haskell Prolog
Listas [] []
(cabeza:cola) [Cabeza|Cola]
(cabeza:segundo:cola) [Cabeza,Segundo|Cola]
Variableannima _ _
Funciones de Haskell
Operaciones sobre funciones
($) :: (a -> b) -> a -> b Aplica una funcin con un valor
flip :: (a -> b -> c) -> b -> a -> c Invierte la aplicacin de los parmetros de una
funcin
iterate :: (a -> a) -> a -> [a] Para iterate f x, genera la lista infinita [x, f
x, f (f x), ...]
replicate :: Int -> a -> [a] Genera una lista que repite una cierta cantidad
de veces al elemento dado
cycle :: [a] -> [a] Para cycle xs, genera la lista infinita xs ++ xs
++ xs ++ ...
Predicados de Prolog
Predicados fundamentales de orden superior
not(Consulta)
findall(Formato,Consulta,Lista)
forall(Antecedente,Consecuente)
GuadeLenguajesv2.0Pgina4de6
Mensajes de Smalltalk
Control de flujo imperativo
unBool ifTrue: [unasSentencias ] EjecutaunasSentenciasdependiendodelvalordeverdaddeunBool.
Tipos de Colecciones
Sinorden:
Bag:Tamaovariable,sinsubndice.
Set:Tamaovariable,sinsubndice,nopermiterepetidos.
Conorden:
Array:Tamaofijo,consubndice,ordendeacuerdoalsubndice.EnestesentidounStringsecomporta
comounArray
OrderedCollection:Tamaovariable,consubndice,ordendeacuerdoalsubndice.
SortedCollection:Tamaovariable,consubndice,ordendeacuerdoacriterioqueseespecifica.
Lascoleccionesconordenrespetanelordendeloselementosendo:/select:/collect:/etc..
Dictionary:Tamaovariable,accesoporclave,nopermiteclavesrepetidas
do:/select:/collect:/etc.funcionansobrelosvaloresincluidos,nosetienenencuentalasclaves.
Mensajes de diccionarios
DevuelveelvalorasociadoaunaClave,nilsiunaClaveno
unaColat:unaClave
tieneasociadoningnvalor.
unaColat:unaClaveput:unObjeto ColocaunObjetocomovalorasociadoaunaClave.
Devuelveunanuevacoleccincontodosloselementosde
unaColordenadossegnunaCondicion.unaCondiciones
unaColasSortedCollection:[:anterior:siguiente|
unaexpresindevalorbooleanoenlaqueintervienen
unaCondicion]
anteriorysiguiente.anteriorquedardelantedesiguiente
cuandounaCondicionseaverdadera.
GuadeLenguajesv2.0Pgina5de6
AgregatodosloselementosdeotraColaunaCol.Paralas
unaColaddAll:otraCol coleccionesconsubndiceseagreganalfinal.Devuelve
otraCol
EjecutaunBloqueconefectocolateralparacadaelemento
unaColdo:unBloque
deunaCol.
RemuevedeunaCollosunElemquehaganverdaderaa
unaColremoveAllSuchThat:[:unElem|unaExpr]
unaExpr.DevuelveesamismaunaColmodificada.
unaColremove:unObjeto EliminaunObjetodeunaCol.DevuelveunObjeto.
unaColremoveAll EliminatodosloselementosdeunaCol.DevuelveunaCol.
ColocaunObjetoenlaposicionunNrodeunaCol.
unaColat:unNroput:unObjeto(*)
InvlidoparaSortedCollection.
GuadeLenguajesv2.0Pgina6de6