<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2749028897023624794</id><updated>2024-10-24T03:31:40.918-07:00</updated><category term="programación"/><category term="shellscript"/><category term="script"/><category term="shell"/><category term="español"/><category term="ejercicios"/><category term="ejercicio"/><category term="práctico"/><category term="interface"/><category term="34"/><category term="43"/><category term="aplicaciones web"/><category term="prácticos"/><category term="shell script"/><category term="java"/><category term="libro"/><category term="web"/><category term="bases de datos"/><category term="interfaz"/><category term="oposiciones"/><category term="pdf"/><category term="Haskell"/><category term="diseño"/><category term="diseño bd"/><category term="modelo entidad relación"/><category term="artículo"/><category term="interfaces"/><category term="c"/><category term="c++"/><category term="jedi"/><category term="presentación"/><category term="tema"/><category term="humor"/><category term="informática"/><category term="inglés"/><category term="24"/><category term="enlace"/><category term="general"/><category term="podcast"/><category term="redes"/><category term="articulo"/><category term="castellano"/><category term="fail"/><category term="linux"/><category term="otros"/><category term="presentacion"/><category term="programación didáctica"/><category term="shellcript"/><category term="web 2.0"/><category term="01"/><category term="02"/><category term="books"/><category term="bottom-up"/><category term="básico"/><category term="cajas"/><category term="cea"/><category term="cita"/><category term="cms"/><category term="comunicación"/><category term="control de flujo"/><category term="didáctica"/><category term="digital"/><category term="digitales"/><category term="dudas"/><category term="ejemplo"/><category term="ejemplos"/><category term="estructuras"/><category term="estructuras de programación"/><category term="eventos"/><category term="examen"/><category term="expresiones"/><category term="funciones"/><category term="google"/><category term="google books"/><category term="grep"/><category term="información"/><category term="introducción"/><category term="joomla"/><category term="lenguaje"/><category term="lenguajes"/><category term="ley"/><category term="leyes"/><category term="noticia"/><category term="noticias"/><category term="nube"/><category term="operadores"/><category term="parámetros"/><category term="placas base"/><category term="practico"/><category term="programación basada en eventos"/><category term="práctica"/><category term="prácticas"/><category term="práticos"/><category term="publicaciones"/><category term="publicación"/><category term="página"/><category term="representación"/><category term="subrutinas"/><category term="tipos de datos"/><category term="top-down"/><category term="trabajo"/><category term="tutoriales"/><category term="universidad"/><category term="valoración"/><category term="variables"/><title type='text'>Blog de un opositor/a</title><subtitle type='html'>Bienvenidos/as al proceloso mar de las Oposiciones. Aquí hay fuentes de información, enlaces a páginas, libros y reflexiones sobre el duro trabajo del opositor/a (a Informática). Además, un podcast de Informática y 7.000 vídeos en Youtube.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>150</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-8743644994690916705</id><published>2012-08-05T10:03:00.003-07:00</published><updated>2012-08-05T10:03:27.616-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Lista de repeticiones de una cadena dentro de otra</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
import List&lt;br /&gt;&lt;br /&gt;
esPrefijoDe :: [Char] -&amp;gt; [Char] -&amp;gt; Bool&lt;br /&gt;esPrefijoDe [] _ = True&lt;br /&gt;esPrefijoDe _ [] = False&lt;br /&gt;esPrefijoDe (x:xs) (y:ys) | x/=y = False&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise = esPrefijoDe xs ys&lt;br /&gt;&lt;br /&gt;posicionsub :: [Char] -&amp;gt; [Char] -&amp;gt; Int&lt;br /&gt;posicionsub _ [] = -1&lt;br /&gt;posicionsub (x:xs) (y:ys) | esPrefijoDe (x:xs) (y:ys) = 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise =&amp;nbsp; 1 + posicionsub (x:xs) ys&lt;br /&gt;&lt;br /&gt;sumador :: [Int] -&amp;gt; [Int]&lt;br /&gt;sumador [] = []&lt;br /&gt;sumador [x] = [x]&lt;br /&gt;sumador (x:y:[]) = [x] ++ [x+y]&lt;br /&gt;sumador (x:y:xs) = [x] ++&amp;nbsp; sumador ([x+y] ++ xs)&lt;br /&gt;&lt;br /&gt;busquedas3 :: [Char] -&amp;gt; [Char] -&amp;gt; [Int]&lt;br /&gt;busquedas3 _ [] = []&lt;br /&gt;busquedas3 xs (y:ys) | pos+1&amp;lt;length(ys)+1 = [pos] ++ busquedas3 xs (drop (pos-1) ys)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise = busquedas3 xs ys&lt;br /&gt;&amp;nbsp; where pos = posicionsub xs (y:ys)&lt;br /&gt;&lt;br /&gt;busquedas4 :: [Char] -&amp;gt; [Char] -&amp;gt; [Int]&lt;br /&gt;busquedas4 xs ys = sumador(busquedas3 xs ys)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/8743644994690916705/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/08/lista-de-repeticiones-de-una-cadena.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8743644994690916705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8743644994690916705'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/08/lista-de-repeticiones-de-una-cadena.html' title='Lista de repeticiones de una cadena dentro de otra'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-2511558870571569430</id><published>2012-08-05T04:58:00.000-07:00</published><updated>2012-08-05T04:58:11.119-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Combinaciones sin repetición en Haskell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
import List&lt;br /&gt;&lt;br /&gt;comb :: Int -&amp;gt; [a] -&amp;gt; [[a]]&lt;br /&gt;comb 0 _ = [[]]&lt;br /&gt;comb _ [] = []&lt;br /&gt;comb (n+1) (x:xs) =&amp;nbsp; [x:ys | ys &amp;lt;-comb n xs] ++ comb (n+1) xs&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/2511558870571569430/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/08/combinaciones-sin-repeticion-en-haskell.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/2511558870571569430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/2511558870571569430'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/08/combinaciones-sin-repeticion-en-haskell.html' title='Combinaciones sin repetición en Haskell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-3592850804439872487</id><published>2012-07-25T15:08:00.003-07:00</published><updated>2012-07-25T15:08:55.527-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Relación de ejercicios argentina en Haskell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://dl.dropbox.com/u/30592764/haskell/practico2.pdf&quot;&gt;https://dl.dropbox.com/u/30592764/haskell/practico2.pdf&lt;/a&gt;&lt;br /&gt;
El 8 está chulo, muchos ejercicios cortitos.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/3592850804439872487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/relacion-de-ejercicios-argentina-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/3592850804439872487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/3592850804439872487'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/relacion-de-ejercicios-argentina-en.html' title='Relación de ejercicios argentina en Haskell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-7617026884447815764</id><published>2012-07-25T15:03:00.002-07:00</published><updated>2012-07-25T15:03:22.510-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Técnicas de programación recursiva en Haskell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SEC_TProgRecur&quot;&gt;4. Técnicas de programación Recursiva&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;text&quot;&gt;
 En esta sección se indicarán varios patrones de tratamiento de estructuras recursivas.
  Estos patrones se aplicarán principalmente a listas, pero muchos de ellos pueden generalizarse
  a otras estructuras como árboles, rosales, etc.&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_AplicarF&quot;&gt;4.1. Aplicar una función a cada elemento&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_aplica&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;aplica&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; aplica :: (a -&amp;gt; b) -&amp;gt; [a] -&amp;gt; [b]
&amp;gt; aplica f [] = []
&amp;gt; aplica f (x:xs) = f x : aplica f xs


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;aplica&lt;/code&gt; está predefinida como la función 
&lt;code&gt;map&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_fold&quot;&gt;4.2. Recorrer y transformar una estructura en un valor&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
Obsérvese la definición de las siguientes funciones&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_sumaLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;sumaLs&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; sumaLs :: Num n =&amp;gt; [n] -&amp;gt; n
&amp;gt; sumaLs [] = 0
&amp;gt; sumaLs (x:xs) = x + sumaLs xs


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_prodLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;prodLs&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; prodLs :: Num n =&amp;gt; [n] -&amp;gt; n
&amp;gt; prodLs [] = 1
&amp;gt; prodLs (x:xs) = x * prodLs xs


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_longLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;longLs&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; longLs :: Num n =&amp;gt; [a] -&amp;gt; n
&amp;gt; longLs [] = 0
&amp;gt; longLs (x:xs) = 1 + longLs xs


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
En la definición de las siguientes funciones, puede observarse que se utiliza
  siempre un mismo patrón. Un caso básico cuando la lista está vacía, cuyo valor es 
  &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt; y &lt;code&gt;0&lt;/code&gt;; 
  y un caso recursivo en el cual se realiza una operación combinando el elemento &lt;code&gt;x&lt;/code&gt; con
  el resultado de la llamada recursiva. La operación, en el primer caso es &lt;code&gt;\x r -&amp;gt; x + r&lt;/code&gt;, 
  en el segundo caso es &lt;code&gt;\x r -&amp;gt; x * r&lt;/code&gt; y en el último caso es &lt;code&gt;\x r -&amp;gt; 1 + r&lt;/code&gt;. &lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
El patrón descrito podría generalizarse en una función &lt;code&gt;foldRight&lt;/code&gt; que tome como parámetros
  el valor &lt;code&gt;e&lt;/code&gt; a devolver en el caso básico y la operación &lt;code&gt;op&lt;/code&gt; a realizar en el caso recursivo.
&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_foldRight&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;foldRight&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; foldRight :: (a -&amp;gt; b -&amp;gt; b) -&amp;gt; b -&amp;gt; [a] -&amp;gt; b
&amp;gt; foldRight op e [] = e
&amp;gt; foldRight op e (x:xs) = x `op` foldRight op e xs


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-foldRight (+) 0 [2,3,4]9&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;foldRight&lt;/code&gt; está predefinida como la función &lt;code&gt;foldr&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
A partir de la función &lt;code&gt;foldr&lt;/code&gt;, pueden redefinirse las funciones 
&lt;code&gt;sumaLs&lt;/code&gt;,&lt;code&gt;prodLs&lt;/code&gt; y &lt;code&gt;longLs&lt;/code&gt;.&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_sumaLs&#39;&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;sumaLs&#39;&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; sumaLs&#39; = foldr (+) 0


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_prodLs&#39;&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;prodLs&#39;&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; prodLs&#39; = foldr (*) 1


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_longLs&#39;&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;longLs&#39;&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; longLs&#39; = foldr (\x r -&amp;gt; 1 + r) 0


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
Además de las funciones anteriores, existen numerosas funciones que trabajan sobre listas y 
 que pueden definirse a partir de la función &lt;code&gt;foldr&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_andLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;andLs&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; andLs :: [Bool] -&amp;gt; Bool
&amp;gt; andLs = foldr (&amp;amp;&amp;amp;) True


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;andLs&lt;/code&gt; está predefinida como la función &lt;code&gt;and&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_orLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;orLs&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; orLs :: [Bool] -&amp;gt; Bool
&amp;gt; orLs = foldr (||) False


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;orLs&lt;/code&gt; está predefinida como la función &lt;code&gt;or&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_append&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;append&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; append :: [a] -&amp;gt; [a] -&amp;gt; [a]
&amp;gt; append xs ys = foldr (\x r -&amp;gt; x : r) ys xs


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;append&lt;/code&gt; está predefinida como el operador &lt;code&gt;(++)&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_vuelta&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;vuelta&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; vuelta :: [a] -&amp;gt; [a] 
&amp;gt; vuelta = foldr (\x r -&amp;gt; r ++ [x]) []


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;vuelta&lt;/code&gt; está predefinida como la función &lt;code&gt;reverse&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_tomaMientras&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;tomaMientras&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; tomaMientras :: (a -&amp;gt; Bool) -&amp;gt; [a] -&amp;gt; [a] 
&amp;gt; tomaMientras f = foldr (\x r -&amp;gt; if f x then x:r else []) []


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-tomaMientras (&amp;gt;3) [6,5,2,4,1] [6,5]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;tomaMientras&lt;/code&gt; está predefinida como la función 
&lt;code&gt;takeWhile&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_filtra&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;filtra&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; filtra :: (a -&amp;gt; Bool) -&amp;gt; [a] -&amp;gt; [a] 
&amp;gt; filtra f = foldr (\x r -&amp;gt; if f x then x:r else r) []


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-filtra (&amp;gt;3) [6,5,2,4,1] [6,5,4]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;filtra&lt;/code&gt; está predefinida como la función 
&lt;code&gt;filter&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_zip&quot;&gt;4.3. Combinar dos estructuras&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_comb&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;comb&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; comb :: [a] -&amp;gt; [b] -&amp;gt; [(a,b)]
&amp;gt; comb xs [] = []
&amp;gt; comb [] ys = []
&amp;gt; comb (x:xs) (y:ys) = (x,y):comb xs ys


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-comb [2,3,4] &quot;hola&quot;[(2,&#39;h&#39;),(3,&#39;o&#39;),(4,&#39;l&#39;)]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;comb&lt;/code&gt; está predefinida como la función &lt;code&gt;zip&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_comprehension&quot;&gt;4.4. Listas intensionales&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
El lenguaje Haskell admite una notación que facilita la definición de listas. Esta notación es 
 similar a las definiciones matemáticas intensionales&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_cpares20&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;cpares20&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;cpares20&lt;/code&gt; calcula los cuadrados de los números pares entre 1 y 20&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; cpares20 :: [Integer]
&amp;gt; cpares20 = [x ^ 2 | x &amp;lt;- [1..20], x `mod` 2 == 0]


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-cpares20[4,16,36,64,100,144,196,256,324,400]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_divisores&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;divisores&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;divisores&lt;/code&gt; calcula los divisores de un número&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; divisores :: Integer -&amp;gt; [Integer]
&amp;gt; divisores n = [d | d &amp;lt;- [1..n], n `mod` d == 0]


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-divisores 24[1,2,3,4,6,8,12,24]&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_recorrer2&quot;&gt;4.5. Otras posibilidades de recorrer y transformar una lista en un valor&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;foldr&lt;/code&gt; actúa de la siguiente forma: &lt;/div&gt;
&lt;code&gt;&lt;pre&gt;foldr op e [x1,x2,x3] = x1 `op` (x2 `op` (x3 `op` e)) 
&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;text&quot;&gt;

Como puede observarse, la operación se asocia hacia la derecha. El nombre &lt;code&gt;foldr&lt;/code&gt; 
viene de fold-right, a la derecha.
&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;

Es posible definir una función fold-left que se denominará &lt;code&gt;foldl&lt;/code&gt; y realiza la asociación 
a la izquierda. 
&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;foldl op e [x1,x2,x3] = ((e `op` x1) `op` x2) `op` x3
&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_foldLeft&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;foldLeft&lt;/em&gt;)
  &lt;code&gt;&lt;pre&gt;&amp;gt; foldLeft :: (b -&amp;gt; a -&amp;gt; b) -&amp;gt; b -&amp;gt; [a] -&amp;gt; b
&amp;gt; foldLeft op e [] = e
&amp;gt; foldLeft op e (x:xs) = foldLeft op (e `op` x) xs


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-foldLeft (+) 0 [1,3,4]8&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;La función &lt;code&gt;foldLeft&lt;/code&gt; está predefinida en Haskell como &lt;code&gt;foldl&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
Cuando la operación &lt;code&gt;op&lt;/code&gt; es asociativa y &lt;code&gt;e&lt;/code&gt; es el elemento neutro de &lt;code&gt;op&lt;/code&gt;, 
se cunple que:&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;foldr op e = foldl op e
&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;text&quot;&gt;
En general, &lt;code&gt;foldr&lt;/code&gt; es más eficiente que &lt;code&gt;foldl&lt;/code&gt;. 
  Sin embargo, &lt;code&gt;foldl&lt;/code&gt; puede ser útil en cierto tipo de definiciones&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_ls2n&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;ls2n&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;ls2n&lt;/code&gt; convierte una lista de dígitos en un número decimal&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; ls2n :: [Integer] -&amp;gt; Integer
&amp;gt; ls2n = foldl (\r a -&amp;gt; r * 10 + a) 0


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-ls2n [1,3,4]134&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;text&quot;&gt;
Si las listas no están vacías, puede ser necesario aplicar la operación sobre los elementos sin
   utilizar un elemento básico. Los operadores &lt;code&gt;foldr1&lt;/code&gt; y &lt;code&gt;foldl1&lt;/code&gt; actúan de 
   la siguiente forma:&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;foldr1 op [x1,x2,x3] = x1 `op` (x2 `op` x3)
foldl1 op [x1,x2,x3] = (x1 `op` x2) `op` x3
&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_maxLs&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;maxLs&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;maxLs&lt;/code&gt; devuelve el valor máximo de una lista de enteros&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; maxLs :: [Integer] -&amp;gt; Integer
&amp;gt; maxLs = foldr1 max


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-maxLs [-1,-3,-4]-1&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_scan&quot;&gt;4.6. Recorrer y transformar una estructura generando resultados parciales&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
Los operadores predefinidos &lt;code&gt;scanr&lt;/code&gt;, &lt;code&gt;scanl&lt;/code&gt;, &lt;code&gt;scanr1&lt;/code&gt; y &lt;code&gt;scanl1&lt;/code&gt;
 recorren la lista generando resultados parciales de la siguiente forma: &lt;/div&gt;
&lt;code&gt;&lt;pre&gt;scanr op e [x1,x2,x3] = 
   [x1 `op` (x2 `op` (x3 `op` e)), x2 `op` (x3 `op` e), x3 `op` e, e]
scanl op e [x1,x2,x3] = 
   [e, e `op` x1, (e `op` x1) `op` x2, ((e `op` x1) `op` x2) `op` x3]
scanr1 op e [x1,x2,x3] = 
   [x1 `op` (x2 `op` x3), x2 `op` x3, x3]
scanl1 op e [x1,x2,x3] = 
   [x1, x1 `op` x2, (x1 `op` x2) `op` x3]
&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_ruffini&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;ruffini&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;ruffini&lt;/code&gt; aplica la regla de ruffini&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; ruffini :: Float -&amp;gt; [Float] -&amp;gt; [Float]
&amp;gt; ruffini a = scanl1 (\r x -&amp;gt; r * a + x) 


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-ruffini 3 [2,4,3][2,10,33]&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_unfold&quot;&gt;4.7. Generar una estructura&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
La generación de una lista a partir de un valor puede capturarse mediante
 la siguiente función&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_unfold&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;unfold&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;unfold&lt;/code&gt; realiza el proceso inverso a la función &lt;code&gt;foldr&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; unfold :: (a -&amp;gt; Bool) -&amp;gt; (a -&amp;gt; b) -&amp;gt; (a -&amp;gt; a) -&amp;gt; a -&amp;gt; [b]
&amp;gt; unfold p f g x = if p x then [] 
&amp;gt;                  else f x : unfold p f g (g x)


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_d2b&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;d2b&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;d2b&lt;/code&gt; convierte un número decimal en su representación binaria&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; d2b :: Integer -&amp;gt; [Integer]
&amp;gt; d2b = reverse . unfold (==0) (`mod` 2) (`div` 2)  


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-d2b 13[1,1,0,1]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_pals&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;pals&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;pals&lt;/code&gt; convierte devuelve la lista de palabras que forman una cadena de caracteres
&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; pals :: String -&amp;gt; [String]
&amp;gt; pals = palsAux . quitaEsp
&amp;gt;   where palsAux  = unfold (==&quot;&quot;) tomaPal quitaPal
&amp;gt;         tomaPal  = takeWhile (not . esp)
&amp;gt;         quitaPal = quitaEsp . dropWhile (not . esp)
&amp;gt;         quitaEsp = dropWhile esp
&amp;gt;         esp x    = x == &#39; &#39; || x == &#39;\n&#39;


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-pals &quot;mi perro es listo&quot;[&quot;mi&quot;,&quot;perro&quot;,&quot;es&quot;,&quot;listo&quot;]&lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_OtrasEstruc&quot;&gt;4.8. Otras estructuras recursivas&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
Los combinadores definidos en las secciones anteriores pueden 
   generalizarse para otras estructuras recursivas. 
&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_foldA&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;foldA&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;foldA&lt;/code&gt; recorre y transforma un árbol en un valor
&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; foldA :: (a -&amp;gt; b -&amp;gt; b -&amp;gt; b) -&amp;gt; b -&amp;gt; Arbol a -&amp;gt; b
&amp;gt; foldA f e Hoja = e
&amp;gt; foldA f e (Rama x i d) = f x (foldA f e i) (foldA f e d)


&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;text&quot;&gt;
 La función &lt;code&gt;sumaArbol&lt;/code&gt; calcula la suma de los nodos de un árbol&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; sumaArbol :: Num n =&amp;gt; Arbol n -&amp;gt; n
&amp;gt; sumaArbol = foldA (\x i d -&amp;gt; x + i + d) 0


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-sumaArbol a114&lt;/pre&gt;
&lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;nodosArbol&lt;/code&gt; devuelve la lista de nodos de un árbol&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; nodosArbol :: Arbol a -&amp;gt; [a]
&amp;gt; nodosArbol = foldA (\x i d -&amp;gt; [x] ++ i ++ d) [] 


&lt;/pre&gt;
&lt;/code&gt;&lt;pre class=&quot;test&quot;&gt;?-nodosArbol a1[3,4,5,2]&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_foldRosal&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;foldRosal&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;foldRosal&lt;/code&gt; recorre y transforma un rosal en un valor
&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; foldRosal :: (a -&amp;gt; [b] -&amp;gt; b) -&amp;gt; b -&amp;gt; Rosal a -&amp;gt; b
&amp;gt; foldRosal f e Vacio = e
&amp;gt; foldRosal f e (Nodo x ls) = f x (map (foldRosal f e) ls) 


&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;sumaRosal&lt;/code&gt; calcula la suma de los nodos de un rosal&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; sumaRosal :: Num n =&amp;gt; Rosal n -&amp;gt; n 
&amp;gt; sumaRosal = foldRosal (\x ls -&amp;gt; x + sum ls) 0



&lt;/pre&gt;
&lt;/code&gt;&lt;div class=&quot;text&quot;&gt;
 La función &lt;code&gt;nodosRosal&lt;/code&gt; devuelve la lista de nodos de un rosal&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; nodosRosal :: Rosal a -&amp;gt; [a]
&amp;gt; nodosRosal = foldRosal (\x ls -&amp;gt; [x] ++ concat ls) []


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;div class=&quot;note&quot;&gt;
&lt;em&gt;Nota: &lt;/em&gt;
Sería deseable definir una función &lt;code&gt;fold&lt;/code&gt; genérica que recorriese y transformase 
todo tipo de estructuras recursivas. Aunque Haskell no permite este tipo de definiciones, 
existe una extensión del lenguaje denominada &lt;em&gt;Generic Haskell&lt;/em&gt; que permite 
definir funciones genéricas, también denominadas politípicas. 
&lt;/div&gt;
&lt;h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;SUBSEC_CombRecursivos&quot;&gt;4.9. Combinadores recursivos básicos&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;text&quot;&gt;
Muchas estructuras recursivas básicas que en otros lenguajes están predefinidas, pueden
  ser definidas por el usuario&lt;/div&gt;
&lt;div class=&quot;example&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2749028897023624794&quot; name=&quot;EX_hasta&quot;&gt;&lt;/a&gt;Ejemplo (&lt;em&gt;hasta&lt;/em&gt;)
  &lt;div class=&quot;text&quot;&gt;
La función &lt;code&gt;hasta&lt;/code&gt; captura un patrón recursivo básico
&lt;/div&gt;
&lt;code&gt;&lt;pre&gt;&amp;gt; hasta :: (a -&amp;gt; Bool) -&amp;gt; (a -&amp;gt; a) -&amp;gt; a -&amp;gt; a
&amp;gt; hasta p f x = if  p x then x 
&amp;gt;               else hasta p f (f x)


&lt;/pre&gt;
&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/7617026884447815764/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/tecnicas-de-programacion-recursiva-en.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7617026884447815764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7617026884447815764'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/tecnicas-de-programacion-recursiva-en.html' title='Técnicas de programación recursiva en Haskell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-1616927388772049631</id><published>2012-07-25T15:00:00.001-07:00</published><updated>2012-07-25T15:06:52.502-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>PDF con funciones recursivas básicas en Haskell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.slideshare.net/JoseAAlonso/definiciones-por-recursin-en-haskell&quot;&gt;http://www.slideshare.net/JoseAAlonso/definiciones-por-recursin-en-haskell&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/1616927388772049631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/pdf-con-funciones-recursivas-basicas-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1616927388772049631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1616927388772049631'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/pdf-con-funciones-recursivas-basicas-en.html' title='PDF con funciones recursivas básicas en Haskell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-3804455407804003855</id><published>2012-07-25T14:54:00.000-07:00</published><updated>2012-07-25T14:54:38.762-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Lista de divisores en Haskell recursiva</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
divisores:: Int -&amp;gt; [Int]&lt;br /&gt;
divisores n = divisoresDesde n 1&lt;br /&gt;
divisoresDesde:: Int -&amp;gt; Int -&amp;gt; [Int]&lt;br /&gt;
divisoresDesde n m&lt;br /&gt;
|n == m = [n]&lt;br /&gt;
|n &amp;gt; m &amp;amp;&amp;amp; (n `mod` m == 0) = m:(divisoresDesde n (m+1))&lt;br /&gt;
|n &amp;gt; m &amp;amp;&amp;amp; (n `mod` m /= 0) = divisoresDesde n (m+1)&lt;br /&gt;
Segundo Cuatrimestre&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/3804455407804003855/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/lista-de-divisores-en-haskell-recursiva.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/3804455407804003855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/3804455407804003855'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/lista-de-divisores-en-haskell-recursiva.html' title='Lista de divisores en Haskell recursiva'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-4661973339835484166</id><published>2012-07-25T14:53:00.000-07:00</published><updated>2012-07-25T14:53:33.005-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Máximo de una lista en Haskell recursivo</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
maximo:: Int -&amp;gt; [Int] -&amp;gt; Int&lt;br /&gt;
maximo [] = error&quot;No hay maximo&quot;&lt;br /&gt;
maximo [x] = x&lt;br /&gt;
maximo (x:xs)&lt;br /&gt;
| x &amp;lt; maximo xs = maximo xs&lt;br /&gt;
| x &amp;gt;= maximo xs = x&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/4661973339835484166/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/maximo-de-una-lista-en-haskell-recursivo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/4661973339835484166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/4661973339835484166'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/maximo-de-una-lista-en-haskell-recursivo.html' title='Máximo de una lista en Haskell recursivo'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-1066897194035228902</id><published>2012-07-25T14:51:00.001-07:00</published><updated>2012-07-25T14:52:45.692-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Longitud de una lista en Haskell recursiva</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
longitud:: [a] -&amp;gt; Int&lt;br /&gt;longitud [] = 0&lt;br /&gt;longitud (x:xs) = 1 + longitud xs &lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/1066897194035228902/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/longitud-de-una-lista-en-haskell.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1066897194035228902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1066897194035228902'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/longitud-de-una-lista-en-haskell.html' title='Longitud de una lista en Haskell recursiva'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-8153280511908730584</id><published>2012-07-25T14:49:00.001-07:00</published><updated>2012-07-25T14:49:40.989-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Haskell"/><title type='text'>Introducción a Haskell</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Haskell (/ˈhæskəl/) es un lenguaje de programación estandarizado 
multi-propósito puramente funcional con semánticas no estrictas y fuerte
 tipificación estática. Su nombre se debe al lógico estadounidense &lt;a href=&quot;http://es.wikipedia.org/wiki/Haskell_Curry&quot; title=&quot;Haskell Curry&quot;&gt;Haskell Curry&lt;/a&gt;.
 En Haskell, &quot;una función es un ciudadano de primera clase&quot; del lenguaje
 de programación. Como lenguaje de programación funcional, el 
constructor de controles primario es la función. El lenguaje tiene sus 
orígenes en las observaciones de Haskell Curry y sus descendientes 
intelectuales.&lt;br /&gt;

Las características más interesantes de Haskell incluyen el soporte para &lt;a href=&quot;http://es.wikipedia.org/wiki/Tipo_de_dato&quot; title=&quot;Tipo de dato&quot;&gt;tipos de datos&lt;/a&gt; y funciones &lt;a href=&quot;http://es.wikipedia.org/wiki/Recursi%C3%B3n&quot; title=&quot;Recursión&quot;&gt;recursivas&lt;/a&gt;, listas, &lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Tuplas&quot; title=&quot;Tuplas&quot;&gt;tuplas&lt;/a&gt;, guardas y &lt;a class=&quot;new&quot; href=&quot;http://es.wikipedia.org/w/index.php?title=Calce_de_patrones&amp;amp;action=edit&amp;amp;redlink=1&quot; title=&quot;Calce de patrones (aún no redactado)&quot;&gt;calce de patrones&lt;/a&gt;. La combinación de las mismas pueden resultar en algunas funciones casi triviales cuya versión en &lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Lenguajes_imperativos&quot; title=&quot;Lenguajes imperativos&quot;&gt;lenguajes imperativos&lt;/a&gt; pueden llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de los &lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Lenguajes_funcionales&quot; title=&quot;Lenguajes funcionales&quot;&gt;lenguajes funcionales&lt;/a&gt; sobre los que más se ha investigado. Se han desarrollado muchas variantes:&lt;br /&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_paralela&quot; title=&quot;Programación paralela&quot;&gt;Versiones paralelas&lt;/a&gt; del &lt;a class=&quot;mw-redirect&quot; href=&quot;http://es.wikipedia.org/wiki/MIT&quot; title=&quot;MIT&quot;&gt;MIT&lt;/a&gt; y &lt;a class=&quot;extiw&quot; href=&quot;http://en.wikipedia.org/wiki/en:Glasgow_University&quot; title=&quot;w:en:Glasgow University&quot;&gt;Glasgow&lt;/a&gt;, ambas denominadas &lt;i&gt;Parallel Haskell&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Más versiones paralelas y distribuidas de Haskell llamadas &lt;i&gt;Distributed Haskell&lt;/i&gt; (anteriormente &lt;i&gt;Goffin&lt;/i&gt;) y Eden&lt;/li&gt;
&lt;li&gt;Una versión con ejecución especulativa: &lt;i&gt;Eager Haskell&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Varias versiones &lt;a href=&quot;http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos&quot; title=&quot;Programación orientada a objetos&quot;&gt;orientadas a objetos&lt;/a&gt;: &lt;i&gt;Haskell++&lt;/i&gt;, &lt;i&gt;O&#39;Haskell&lt;/i&gt; y &lt;i&gt;Mondrian&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Una versión educativa llamada Gofer desarrollada por Mark Jones que fue suplantada por &lt;a href=&quot;http://es.wikipedia.org/wiki/Hugs&quot; title=&quot;Hugs&quot;&gt;Hugs&lt;/a&gt; (ver abajo).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/8153280511908730584/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/introduccion-haskell.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8153280511908730584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8153280511908730584'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/introduccion-haskell.html' title='Introducción a Haskell'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-1547441172040904995</id><published>2012-07-07T04:47:00.000-07:00</published><updated>2012-07-07T04:47:31.033-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="redes"/><title type='text'>Ejercicios de redes: packet tracer</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://sites.google.com/site/jramon208/inicio/redes/ejerciciospackettracer&quot;&gt;https://sites.google.com/site/jramon208/inicio/redes/ejerciciospackettracer&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://ejerciciospackettracer.wordpress.com/&quot;&gt;http://ejerciciospackettracer.wordpress.com/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/1547441172040904995/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/07/ejercicios-de-redes-packet-tracer.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1547441172040904995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1547441172040904995'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/07/ejercicios-de-redes-packet-tracer.html' title='Ejercicios de redes: packet tracer'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-7691242584235937434</id><published>2012-06-22T09:57:00.003-07:00</published><updated>2012-06-22T09:57:43.094-07:00</updated><title type='text'>Vídeo de redes</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/N47MBLGsE0U?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/7691242584235937434/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/06/video-de-redes.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7691242584235937434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7691242584235937434'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/06/video-de-redes.html' title='Vídeo de redes'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-9197487244248677971</id><published>2012-05-05T02:41:00.000-07:00</published><updated>2012-05-05T02:41:47.261-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ejercicios"/><category scheme="http://www.blogger.com/atom/ns#" term="redes"/><title type='text'>Ejercicios de redes del IES Gonzalo Nazareno: buenísimos</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://informatica.gonzalonazareno.org/plataforma/mod/resource/view.php?id=5536&quot;&gt;http://informatica.gonzalonazareno.org/plataforma/mod/resource/view.php?id=5536&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/9197487244248677971/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/05/ejercicios-de-redes-del-ies-gonzalo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/9197487244248677971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/9197487244248677971'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/05/ejercicios-de-redes-del-ies-gonzalo.html' title='Ejercicios de redes del IES Gonzalo Nazareno: buenísimos'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-5421361157971030857</id><published>2012-05-05T02:33:00.002-07:00</published><updated>2012-05-05T02:33:54.598-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="libro"/><category scheme="http://www.blogger.com/atom/ns#" term="redes"/><title type='text'>Ejercicios de redes: libro muy bueno</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.argitalpenak.ehu.es/p291-content/eu/contenidos/libro/se_cytpdf/eu_cytpdf/adjuntos/Redes%20y%20ST%20Ej%20Resueltos.pdf&quot;&gt;http://www.argitalpenak.ehu.es/p291-content/eu/contenidos/libro/se_cytpdf/eu_cytpdf/adjuntos/Redes%20y%20ST%20Ej%20Resueltos.pdf&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/5421361157971030857/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/05/ejercicios-de-redes-libro-muy-bueno.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/5421361157971030857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/5421361157971030857'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/05/ejercicios-de-redes-libro-muy-bueno.html' title='Ejercicios de redes: libro muy bueno'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-1681078737431208762</id><published>2012-04-21T10:10:00.002-07:00</published><updated>2012-04-21T10:10:14.196-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="shellscript"/><title type='text'>shell script objeto más antiguo de un directorio</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.daniweb.com/software-development/shell-scripting/threads/288013/sort-oldest-5-files-in-a-directory-tree-recursively-based-on-timestamp-linux&quot;&gt;http://www.daniweb.com/software-development/shell-scripting/threads/288013/sort-oldest-5-files-in-a-directory-tree-recursively-based-on-timestamp-linux&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/1681078737431208762/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/04/shell-script-objeto-mas-antiguo-de-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1681078737431208762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1681078737431208762'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/04/shell-script-objeto-mas-antiguo-de-un.html' title='shell script objeto más antiguo de un directorio'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-558544183089821187</id><published>2012-04-21T04:37:00.000-07:00</published><updated>2012-04-21T04:37:06.301-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="shellscript"/><title type='text'>lsof shell script: un comando muy útil e interesante</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.akadia.com/services/lsof_quickstart.txt&quot;&gt;http://www.akadia.com/services/lsof_quickstart.txt&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/558544183089821187/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/04/lsof-shell-script-un-comando-muy-util-e.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/558544183089821187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/558544183089821187'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/04/lsof-shell-script-un-comando-muy-util-e.html' title='lsof shell script: un comando muy útil e interesante'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-7387323935441035918</id><published>2012-04-21T01:30:00.002-07:00</published><updated>2012-04-21T01:30:11.130-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><category scheme="http://www.blogger.com/atom/ns#" term="script"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="shell script"/><title type='text'>if en shell script</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html&quot;&gt;http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/7387323935441035918/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/04/if-en-shell-script.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7387323935441035918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/7387323935441035918'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/04/if-en-shell-script.html' title='if en shell script'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-8312614864690534310</id><published>2012-03-19T11:14:00.003-07:00</published><updated>2012-03-19T11:14:54.291-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="lenguaje"/><category scheme="http://www.blogger.com/atom/ns#" term="lenguajes"/><category scheme="http://www.blogger.com/atom/ns#" term="programación"/><title type='text'>Introducción a los lenguajes de programación</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://dis.um.es/%7Elopezquesada/documentos/IES_1011/LMSGI/curso/UT2/UT2.pdf&quot;&gt;http://dis.um.es/~lopezquesada/documentos/IES_1011/LMSGI/curso/UT2/UT2.pdf&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/8312614864690534310/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/03/introduccion-los-lenguajes-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8312614864690534310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8312614864690534310'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/03/introduccion-los-lenguajes-de.html' title='Introducción a los lenguajes de programación'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-5164470335691526781</id><published>2012-03-13T12:53:00.000-07:00</published><updated>2012-03-13T12:53:57.244-07:00</updated><title type='text'>Málaga ciudad inteligente</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.elmundo.es/elmundo/2011/09/28/suvivienda/1317231499.html&quot;&gt;http://www.elmundo.es/elmundo/2011/09/28/suvivienda/1317231499.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.diariosur.es/20110928/local/malaga/malaga-encabeza-ranking-ciudades-201109281411.html&quot;&gt;http://www.diariosur.es/20110928/local/malaga/malaga-encabeza-ranking-ciudades-201109281411.html&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/5164470335691526781/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/03/malaga-ciudad-inteligente.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/5164470335691526781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/5164470335691526781'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/03/malaga-ciudad-inteligente.html' title='Málaga ciudad inteligente'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-362461186971715390</id><published>2012-03-13T12:40:00.002-07:00</published><updated>2012-03-13T12:40:37.520-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="noticia"/><title type='text'>Noticia Smarter Planet</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;http://www.publico.es/ciencias/291505/la-ciudad-empieza-a-hablar&quot;&gt;http://www.publico.es/ciencias/291505/la-ciudad-empieza-a-hablar&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/362461186971715390/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/03/noticia-smarter-planet.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/362461186971715390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/362461186971715390'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/03/noticia-smarter-planet.html' title='Noticia Smarter Planet'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-1125670127105736250</id><published>2012-02-26T05:19:00.001-08:00</published><updated>2012-02-26T05:21:14.079-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Diseño de bases de datos Modelo Entidad Relación Ejercicio 2 Empleados y...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/CoKU34f7zFo?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/1125670127105736250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_7171.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1125670127105736250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/1125670127105736250'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_7171.html' title='Diseño de bases de datos Modelo Entidad Relación Ejercicio 2 Empleados y...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/CoKU34f7zFo/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-4344057626807931875</id><published>2012-02-26T05:19:00.000-08:00</published><updated>2012-02-26T05:23:04.150-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Software para crear diagramas del modelo Entidad Relación y capturar pan...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/_fx4Bo3FTkw?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/4344057626807931875/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/software-para-crear-diagramas-del.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/4344057626807931875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/4344057626807931875'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/software-para-crear-diagramas-del.html' title='Software para crear diagramas del modelo Entidad Relación y capturar pan...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/_fx4Bo3FTkw/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-915606649903482647</id><published>2012-02-26T05:18:00.001-08:00</published><updated>2012-02-26T05:23:16.737-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Diseño de bases de datos Modelo Entidad Relación Ejercicio 4 Clientes y ...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/9UtMyxj1y2I?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/915606649903482647/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_4508.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/915606649903482647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/915606649903482647'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_4508.html' title='Diseño de bases de datos Modelo Entidad Relación Ejercicio 4 Clientes y ...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/9UtMyxj1y2I/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-8906892625079749470</id><published>2012-02-26T05:18:00.000-08:00</published><updated>2012-02-26T05:23:31.995-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Diseño de bases de datos Modelo Entidad Relación Ejercicio 3 Futbolistas...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/C7I9pGPQfxI?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/8906892625079749470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_6303.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8906892625079749470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8906892625079749470'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_6303.html' title='Diseño de bases de datos Modelo Entidad Relación Ejercicio 3 Futbolistas...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/C7I9pGPQfxI/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-8252007235939991896</id><published>2012-02-26T05:17:00.002-08:00</published><updated>2012-02-26T05:23:45.130-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Diseño de bases de datos Modelo Entidad Relación Ejercicio 5 Personas Co...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/t6BugT2gkuc?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/8252007235939991896/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_2038.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8252007235939991896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/8252007235939991896'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_2038.html' title='Diseño de bases de datos Modelo Entidad Relación Ejercicio 5 Personas Co...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/t6BugT2gkuc/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2749028897023624794.post-2087334644069072648</id><published>2012-02-26T05:17:00.001-08:00</published><updated>2012-02-26T05:24:05.582-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bases de datos"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño"/><category scheme="http://www.blogger.com/atom/ns#" term="diseño bd"/><category scheme="http://www.blogger.com/atom/ns#" term="modelo entidad relación"/><title type='text'>Diseño de bases de datos Modelo Entidad Relación Ejercicio 6 Personas Co...</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;270&quot; src=&quot;http://www.youtube.com/embed/PQB7GmIc_Eg?fs=1&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://oposinf.blogspot.com/feeds/2087334644069072648/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_4235.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/2087334644069072648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2749028897023624794/posts/default/2087334644069072648'/><link rel='alternate' type='text/html' href='http://oposinf.blogspot.com/2012/02/diseno-de-bases-de-datos-modelo-entidad_4235.html' title='Diseño de bases de datos Modelo Entidad Relación Ejercicio 6 Personas Co...'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/10226435252364434873</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/PQB7GmIc_Eg/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>