Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aclaraciones
(*)Significaqueslofuncionaparacoleccionesconndice(Smalltalk)
(**)SignificaqueestdeclaradaenData.List(Haskell)
(***)Significaqueeltipopresentadoacesunaversinsimplificadadeltiporeal(Haskell)
NAsignificaNoAplica.Enotraspalabras,noexistenoserecomiendasuuso.
Elementos Comunes
Comentarios
Smalltalk
Haskell
Prolog
un comentario
-- un comentario
{- un comentario
multilnea -}
% un comentario
/* Un comentario
multilnea */
Valores Literales
Smalltalk
Haskell
Prolog
Strings
uNa CadEna
uNa CadEna
NA
Caracteres
$a
NA
Smbolos/tomos
#unSimbolo
NA
unSimbolo
Booleanos
true false
True False
NA
Array/Lista
{1. 2. 3}
{1. $a. hola}
[1, 2, 3]
[1, 2, 3]
[1, unSimbolo, [ ] ]
Tuplas
NA
NA
Data/Functores
NA
Constructor 1 True
nombreFunctor(1, unSimbolo)
Bloques/Funciones
Annimas
[ :param1 :param2 |
cuerpo ]
Smalltalk
Haskell
Prolog
Equivalencia
==
NA
Identidad
==
NA
NA
~Equivalencia
~=
/=
\=
~Identidad
~~
NA
NA
Comparacindeorden
Disyuncin(Olgico)
| (ansiosa)
or: (perezosa)
||
NA
Conjuncin(Ylgico)
& (ansiosa)
and: (perezosa)
&&
Negacin
unBool not
not unBool
not( Consulta )
GuadeLenguajesv2.0Pgina1de6
Operadores matemticos
Smalltalk
Haskell
Prolog(slocomoparte
deunis)
Operadoresaritmticos
comunes
+-*/
+-*/
+-*/
Divisinentera
dividendo // divisor
dividendo // divisor
Resto
dividendo \\ divisor
Valorabsoluto
unNro abs
abs unNro
abs(Nro)
Exponenciacin
base raisedTo:
exponente
base ^ exponente
base ** exponente
Razcuadrada
unNro sqrt
sqrt unNro
sqrt(Nro)
Mximomnimoentredos
nmeros
NA
Smalltalk
(mensajes)
Haskell(funciones)
Prolog
(predicados)
Longitud
size
length/2
Concatenacin
, (*)
++
append/3
Unineinterseccin
union:
union (**)
union/3
Interseccin
intersection
/3
Accesoporndicebase0
NA
unaLista !! unNro
nth0/3
Accesoporndicebase1
at: (*)
NA
nth1/3
Pertenencia
includes:
elem
member/2
Mximomnimodeun
conjuntodenmeros
max
min
maximum
minimum
max/3
min/3
Buscarelmximoomnimo
segncondicinbooleana
detectMax:
detectMin:
NA
Sumatoriadeunconjuntode
nmeros
sum
sum
sumlist/2
GuadeLenguajesv2.0Pgina2de6
Smalltalk
Haskell
Sumatoriadeunconjuntodeelementos
segnunatransformacin
sum:
NA
Primerosnelementosdeunconjunto
first:
take
Cantidaddeocurrencias
ocurrencesOf:
NA
Filtrar
select:
filter
Rechazar(filtrarlosquenocumplenla
condicion)
reject:
NA
Mapear
collect:
map
Aplanarcoleccindecolecciones/lista
delistas
flatten
concat
Aplanarymapear
gather:
concatMap
Reducir/plegaraizquierda
inject: into:
Reducir/plegaraderecha
NA
Todoscumplen(verdaderoparalista
vaca)
allSatisfy:
all
Algunocumple(falsoparalistavaca)
anySatisfy
any
Primerelemento
first
head
ltimoelemento
last
last
Cola
allButFirst
tail
Segmentoinicial(todosmenoselltimo)
allButLast
init
Apareodelistas
NA
Buscarelprimerelementoquecumpla
unacondicin
detect:
detect: ifNone:
Posicinenlaqueseencuentrala
primeraocurrenciadeunelemento
indexOf: (*)
Sicomienza/terminacon
beginsWith: (*)
endsWith: (*)
isPreffixOf (**)
isSuffixOf (**)
Sublistaentredosposiciones
NA
Cantidaddeelementosquecumplenuna
count:
condicin
NA
NA
GuadeLenguajesv2.0Pgina3de6
Patrones
Haskell
Prolog
Listas
[]
(cabeza:cola)
(cabeza:segundo:cola)
[]
[Cabeza|Cola]
[Cabeza,Segundo|Cola]
Tuplas
(componente1, componente2)
NA
Data/Functores
Variableannima
Funciones de Haskell
Operaciones sobre funciones
($) :: (a -> b) -> a -> b
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.
EjecutaunasSentenciasuotrasSentenciasdependiendodelvalorde
verdaddeunBool.
EjecutaiterativamentelassentenciasmientrasunBoolseaverdadero.
EjecutaiterativamentelassentenciasexactamenteunNrodeveces.
Ejecutaiterativamentelassentenciaslacantidaddevecescomprendida
entreunNroyotroNro.Indicevaraencadaiteracin,desdeunNrohasta
otroNro.
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
unaColat:unaClave
DevuelveelvalorasociadoaunaClave,nilsiunaClaveno
tieneasociadoningnvalor.
unaColat:unaClaveput:unObjeto
ColocaunObjetocomovalorasociadoaunaClave.
unaColasSortedCollection:[:anterior:siguiente|
unaCondicion]
Devuelveunanuevacoleccindelaclaseindicadacon
todosloselementosdeunaCol.
Devuelveunanuevacoleccincontodosloselementosde
unaColordenadossegnunaCondicion.unaCondiciones
unaexpresindevalorbooleanoenlaqueintervienen
anteriorysiguiente.anteriorquedardelantedesiguiente
cuandounaCondicionseaverdadera.
GuadeLenguajesv2.0Pgina5de6
AgregaunObjetoaunaCol.Paralascoleccionescon
subndiceseagreganalfinal.DevuelveunObjeto
unaColaddAll:otraCol
AgregatodosloselementosdeotraColaunaCol.Paralas
coleccionesconsubndiceseagreganalfinal.Devuelve
otraCol
unaColdo:unBloque
EjecutaunBloqueconefectocolateralparacadaelemento
deunaCol.
unaColremoveAllSuchThat:[:unElem|unaExpr]
RemuevedeunaCollosunElemquehaganverdaderaa
unaExpr.DevuelveesamismaunaColmodificada.
unaColremove:unObjeto
EliminaunObjetodeunaCol.DevuelveunObjeto.
unaColremoveAll
EliminatodosloselementosdeunaCol.DevuelveunaCol.
unaColat:unNroput:unObjeto(*)
ColocaunObjetoenlaposicionunNrodeunaCol.
InvlidoparaSortedCollection.
GuadeLenguajesv2.0Pgina6de6