<?xml-stylesheet type="text/xsl" href="http://ajayu.memi.umss.edu.bo/tati/weblog/rss/rssstyles.xsl"?>
<rss version='2.0'   xmlns:dc='http://purl.org/dc/elements/1.1/'>
    <channel xml:base='http://ajayu.memi.umss.edu.bo/tati/weblog/'>
        <title><![CDATA[Comunidad Haskell San Simon : Weblog]]></title>
        <description><![CDATA[El weblog para Comunidad Haskell San Simon, alojado en Ajayu.]]></description>
        <generator>Elgg</generator>
        <link>http://ajayu.memi.umss.edu.bo/tati/weblog/</link>        
        <item>
            <title><![CDATA[Learn you a Haskell for great good!]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/learn-you-haskell-for-great-good</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/learn-you-haskell-for-great-good</guid>
            <pubDate>Mon, 24 Nov 2008 00:52:56 GMT</pubDate>
		<dc:subject><![CDATA[haskell]]></dc:subject>
		<dc:subject><![CDATA[guide]]></dc:subject>
            <description><![CDATA[<a href="http://learnyouahaskell.com/">This is a beginner's guide to Haskell!</a>]]></description>
        </item>
                
        <item>
            <title><![CDATA[De la universidad al mundo productivo ... abran espacio para los lambdas!]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/universidad-mundo-productivo-abran-espacio-para-lambdas</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/universidad-mundo-productivo-abran-espacio-para-lambdas</guid>
            <pubDate>Sat, 12 Jul 2008 17:29:12 GMT</pubDate>
		<dc:subject><![CDATA[linq]]></dc:subject>
		<dc:subject><![CDATA[programación funcional]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[QCon es un congreso internacional en la que usualmente se reunen los practicantes de la computación, a diferencia de congresos más fundamentales para profesores universitarios. Este año en QCon uno de los invitados es Erik Meijer, miembro del equipo de diseño de Haskell98 y de LINQ. Además hay un <a href="http://qconsf.com/sanfrancisco-2008/tracks/show_track.jsp?trackOID=169"  title="track functional and concurrent languages">track especializado sobre lenguajes de programación funcionales y concurrentes</a>. El futuro ya es casi parte de lo cotidiano ...]]></description>
        </item>
                
        <item>
            <title><![CDATA[El retorno de la programación funcional a la universidad ...]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/retorno-programacion-funcional-universidad</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/retorno-programacion-funcional-universidad</guid>
            <pubDate>Sat, 21 Jun 2008 18:01:58 GMT</pubDate>
		<dc:subject><![CDATA[curriculo computación]]></dc:subject>
		<dc:subject><![CDATA[programacion funcional]]></dc:subject>
		<dc:subject><![CDATA[Lenguajes de programacion]]></dc:subject>
            <description><![CDATA[Fines de mayo 2008, Workshop on Programming Languages in the Curriculum, Harvard ...  la <a href="http://wiki.acm.org/cs2001/index.php?title=SIGPLAN_Proposal"  title="propuesta programacion funcional">discusión</a> de  la importancia de los lenguajes de programación en la enseñanza de cientistas y tecnólogos de computación del futuro vuelve a centrarse en la programación funcional. Si tienes tu cuenta de ACM puedes ver algunas opiniones del item con mas comentarios de la revision de propuesta del curriculum 2001.]]></description>
        </item>
                
        <item>
            <title><![CDATA[Functional Graph Library (FGL )]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/functional-graph-library-fgl</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/functional-graph-library-fgl</guid>
            <pubDate>Sat, 24 May 2008 20:14:49 GMT</pubDate>
		<dc:subject><![CDATA[Functional Graph Library]]></dc:subject>
		<dc:subject><![CDATA[(FGL )]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[FGL es una coleccion de tipos y definiciones de funciones para resolver
problemas de grafos. La base de la libreria es la definicion inductiva
de grafos, tipo de datos algebraicos inductivos, definiciones
recursivas de algoritmos. <br />
Define un tipo para nodos dirigidos y
arcos(aristas) etiquetados, que es en si la representación más general,
los otros tipos de grafos pueden ser obtenidos como casos especiales ,
por ejemplo, los grafos no dirigidos pueden ser simulados por un grafo
dirigido que tiene una estructura de aristas simetrica, y nodos o
aristas sin etiqueta se representan simplemente con el tipo ()
(unit/tipo trivial) <br />
Cada grafo puede ser representado por un Contexto, una cuadrupla representada por :<br />
lista de predecesores , Identificador del nodo, Etiqueta del Nodo, lista de sucesores.<br />
type Context a b = (Adj b, Node, a, Adj b)<br />
type Adj b = [(b, Node)] <br />
Provee ademas funciones sobre nodos: obtener sucesores(suc), predecesores(pre), vecinos, grado de un nodo, nmap <br />
<br />
Ejemplo :<br />
<br />
import Data.Graph.Inductive<br />
import Data.Graph.Inductive.Query.MST<br />
--import Data.Graph.Inductive.Graphviz<br />
...<br />
<br />
g :: Gr Char Int -- Un grafo que en sus nodos contiene Caracteres <br />
                 -- y  las aristas tienen valor(peso, distancia)del tipo Entero<br />
--   predecesores   , Ident Nodo, Etiqueta del Nodo,  sucesores <br />
g = ([(10,2),(11,3)],1,'a',[(12,2)]) &amp; -- &amp; añade un contexto( osea un grafo) a otro grafo.<br />
    (([]            ,2,'b',[(13,3)]) &amp; <br />
    (([]            ,3,'c',[])       &amp; empty ))-- empty denota un grafo vacio<br />
<br />
<br />
--  agrega nodos. Devuelve un grafo con el nuevo nodo<br />
grafo = insNode (4,'d') g3  <br />
<br />
-- inserta un par de aristas simetricas. <br />
<br />
a1     = insEdge (4, 3, 15) grafo -- del nodo 4 al 3 existe una arista con valor 15<br />
ngrafo = insEdge (3,4 , 16) a1    -- del nodo 3 al 4 existe una arista con valor 16   <br />
<br />
--El grafo ngrafo se representa asi: <br />
1:'a'-&gt;[(12,2)]        -- Indica que el nodo 1 tiene( o contiene) la etiqueta 'a' Char <br />
                       -- y con una arista de valor 12 llega al nodo 2 <br />
2:'b'-&gt;[(13,3),(10,1)] -- El nodo 2 contiene 'b' y con 13 llega al nodo 3 <br />
                       -- con 10 llega al nodo 1<br />
3:'c'-&gt;[(16,4),(11,1)] -- El nodo 3 contiene 'c' y con 16 llega al nodo 4 <br />
                       -- con 11 llega al nodo 1<br />
4:'d'-&gt;[(15,3)]        -- El nodo 4 contiene 'd' y con 15 llega al nodo 3  <br />
 <br />
--podemos estraer el arbol de expansion minimo (Minimum-Spanning-Tree)<br />
aem = msTree ngrafo<br />
--Resulta<br />
[[(2,0)],[(1,10),(2,0)],[(3,13),(2,0)]] <br />
<br />
-- Map sobre nodos o aristas <br />
--  nmap :: DynGraph gr =&gt; (a -&gt; c) -&gt; gr a b -&gt; gr c b <br />
<br />
aplicaSobreNodos = nmap toUpper  ngrafo  --Modifica los nodos aplicando una funcion<br />
--Resulta <br />
1:'A'-&gt;[(12,2)]<br />
2:'B'-&gt;[(13,3),(10,1)]<br />
3:'C'-&gt;[(16,4),(11,1)]<br />
4:'D'-&gt;[(15,3)]<br />
<br />
-- emap :: DynGraph gr =&gt; (b -&gt; c) -&gt; gr a b -&gt; gr a c <br />
aplicaSobreAristas = emap (+2) ngrafo -- Modifica las aristas aplicando la funcion<br />
--Resulta<br />
1:'a'-&gt;[(14,2)]<br />
2:'b'-&gt;[(15,3),(12,1)]<br />
3:'c'-&gt;[(18,4),(13,1)]<br />
4:'d'-&gt;[(17,3)]<br />
<br />
Existen varios ejemplos en: Data.Graph.Inductive.Example<br />
tambien
en Data.Graph.Inductive.Query encontramos varias implementaciones de
algoritmos sobre grafos como:Breadth-First Search, Depth-First Search,
Maximum Flow,Dijkstra's shortest path.(Tomar en cuenta que FGL difiere
significativamente del modo imperativo tradicional de pensar para
resolver algoritmos sobre grafos, por tanto no se debe esperar la más
eficiente implementación de algoritmos sobre grafos, pero en principo
son tan eficientes como los correspondientes algoritmos imperativos :S )<br />
En Data.Graph.Inductive.Graphviz existen funciones para visualizar grafos con esa herramienta(Graphviz).<br />
-- main = writeFile "Grafo.dot" (graphviz' ngrafo) -- *]]></description>
        </item>
                
        <item>
            <title><![CDATA[diagrams: un EDSL funcional puro en Haskell usando Cairo]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/diagrams-edsl-funcional-puro-haskell-usando-cairo</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/diagrams-edsl-funcional-puro-haskell-usando-cairo</guid>
            <pubDate>Fri, 02 May 2008 19:42:38 GMT</pubDate>
		<dc:subject><![CDATA[cairo]]></dc:subject>
		<dc:subject><![CDATA[diagrams]]></dc:subject>
		<dc:subject><![CDATA[edsl]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[leo via <a href="http://softlibre.barrapunto.com/softlibre/08/05/01/0552214.shtml">Barrapunto</a>: "<em><a href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/diagrams-0.1">Diagrams</a> es un EDSL (embedded domain-specific language) que permite dibujar figuras utilizando <a href="http://cairographics.org/">Cairo</a> en <a href="http://es.wikipedia.org/wiki/Haskell">Haskell</a>. </em><em>Los EDSL aprovechan todas las ventajas que nos ofrece un lenguaje a
la vez que lo extendemos para escribir programas del ámbito que nos
ocupa fácilmente. Algunos ejemplos son <a href="http://blog.moertel.com/articles/2005/08/27/power-parsing-with-haskell-and-parsec">escribir parsers en el mismo lenguaje</a> o como hablamos en Barrapunto hace algún tiempo <a href="http://formacion.barrapunto.com/formacion/08/03/15/1815254.shtml?tid=83">escribir librerías de alto rendimiento</a>."</em>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Flojera y Haskell]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/flojera-y-haskell</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/flojera-y-haskell</guid>
            <pubDate>Fri, 21 Mar 2008 20:04:02 GMT</pubDate>
		<dc:subject><![CDATA[flojera]]></dc:subject>
		<dc:subject><![CDATA[laziness]]></dc:subject>
		<dc:subject><![CDATA[programación funcional]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[Una experiencia aprendiendo a programar con un lenguaje flojo.

<a href="http://www.nobugs.org/blog/archives/2008/03/20/haskell-is-possibly-too-lazy-for-me/">http://www.nobugs.org/blog/archives/2008/03/20/haskell-is-pos</a>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Encuesta reddit: ¿qué lenguaje funcional aprender?]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/encuesta-reddit-lenguaje-funcional-aprender</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/encuesta-reddit-lenguaje-funcional-aprender</guid>
            <pubDate>Tue, 11 Mar 2008 15:13:01 GMT</pubDate>
		<dc:subject><![CDATA[aprender a programar]]></dc:subject>
		<dc:subject><![CDATA[lenguaje de programación]]></dc:subject>
		<dc:subject><![CDATA[programación funcional]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[Según yo no hay mucho que elegir: Haskell es la gran palabra. Pero vale la pena leer la <a href="http://reddit.com/info/6aw3z/comments/">encuesta reddit</a> para asegurarse de que debe ser así :-) No hay problema en aprender otros lenguajes funcionales, pero no me culpen por alguna distorción funcional que resulte como efecto de tomar una mala decisión ;-) Una cosa es aprender buenas costumbres de programación y otra resolver los problemas de la vida real. Por suerte Haskell combina cada vez más ambas características.]]></description>
        </item>
                
        <item>
            <title><![CDATA[A History of Haskell: Being Lazy With Class]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/history-of-haskell-being-lazy-with-class</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/history-of-haskell-being-lazy-with-class</guid>
            <pubDate>Wed, 20 Feb 2008 17:40:30 GMT</pubDate>
            <description><![CDATA[<p>
Este paper describe la historia de Haskell.
</p>
<p>
<a href="http://research.microsoft.com/~simonpj/papers/history-of-haskell/history.pdf"> http://research.microsoft.com/~simonpj/papers/history-of-haskell/history.pdf</a>
</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Servidores web en Haskell]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/servidores-web-en-haskell</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/servidores-web-en-haskell</guid>
            <pubDate>Tue, 19 Feb 2008 19:13:29 GMT</pubDate>
		<dc:subject><![CDATA[servidores web]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[La lista se agranda. El primero es hws (<a href="http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/hws/"  title="codigo de hws">codigo</a>, <a href="http://www.haskell.org/~simonmar/papers/web-server-jfp.pdf"  title="web server en Haskell">paper</a>) de Simon Marlow. Luego está mohws (<a href="http://code.haskell.org/mohws/README"  title="codigo de mohws">codigo</a>). Ahora también está <a href="http://lstephen.wordpress.com/2008/02/14/a-simple-haskell-web-server/"  title="shwf">SHWF</a>. Para entender el código hace falta manejar entrada/salida monádica, y por supuesto, entender http.]]></description>
        </item>
                
        <item>
            <title><![CDATA[Los diez programas Haskell más populares ...]]></title>
            <link>http://ajayu.memi.umss.edu.bo/tati/weblog/diez-programas-haskell-mas-populares</link>
            <guid isPermaLink="true">http://ajayu.memi.umss.edu.bo/tati/weblog/diez-programas-haskell-mas-populares</guid>
            <pubDate>Wed, 30 Jan 2008 18:07:04 GMT</pubDate>
		<dc:subject><![CDATA[gramáticas de atributos]]></dc:subject>
		<dc:subject><![CDATA[programación funcional]]></dc:subject>
		<dc:subject><![CDATA[haskell]]></dc:subject>
            <description><![CDATA[Cosas que le gustan/son útiles para las personas. En Haskell la lista de los <a href="http://haskell-news.blogspot.com/2008/01/top-10-most-popular-haskell-programs.html"  title="diez programas más populares">diez más populares</a> tiene entre sus integrantes al poderoso <a href="http://www.cs.uu.nl/wiki/HUT/WebHome"  title="uu ag">UUAG</a>.]]></description>
        </item>
        
    </channel>
</rss>