<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.cs.famaf.unc.edu.ar/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.cs.famaf.unc.edu.ar/feed.php">
        <title>Ciencias de la Computación FAMAF - introalg</title>
        <description></description>
        <link>https://wiki.cs.famaf.unc.edu.ar/</link>
        <image rdf:resource="https://wiki.cs.famaf.unc.edu.ar/_media/wiki:dokuwiki.svg" />
       <dc:date>2026-04-08T18:57:34+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado11?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado12?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado15?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado18?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:main?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:parcialito08_2?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:problemas07?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:problemas08?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado10?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado11?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado12?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado15?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:rincon?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:rincon07?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller1?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller2?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller3?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller4?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_1?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_2?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_3?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_4?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_5?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_6?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_1?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_2?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_3?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_4?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_5?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_6?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_r1?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_1?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_2?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_3?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_4?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_5?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_6?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_7?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_8?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_9?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_10?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_soluciones?rev=1763225254&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09?rev=1763225254&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.cs.famaf.unc.edu.ar/_media/wiki:dokuwiki.svg">
        <title>Ciencias de la Computación FAMAF</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/</link>
        <url>https://wiki.cs.famaf.unc.edu.ar/_media/wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado11?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cursado11</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:cursado11?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: Cursado 2011

Horario de clases

	*  Teórico: Lunes y Miércoles de 14 a 16 (aula B1) - Docente Carlos Areces
	*  Práctico-taller: 
		*  Comisión 1: Lunes (aula 12) y Miércoles (labo 30) de 16.15 a 18.15 - Docente Luciana Benotti</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado12?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cursado12</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:cursado12?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 1er Cuatrimestre del 2012

Horario de clases

	*  Turno Mañana: 
	*   Comisión C - Lunes y Miércoles de 9 a 11hs (Lab 28) y de 11 a 13hs (Aula 13) - Araceli
	*   Comisión D - Lunes y Miércoles de 9 a 11hs (Aula 13) y de 11 a 13hs (Lab 28) - Javier</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado15?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cursado15</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:cursado15?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 1er cuatrimestre del 2015

Docentes

	*  Comisión 1: Araceli Acosta (encargada) y Renato Cherini.
	*  Comisión 2: Pedro Sanchez Terraf (encargado) y Walter Alini.
	*  Comisión 3: Paula Estrella (encargada) y Mauricio Tellechea.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:cursado18?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cursado18</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:cursado18?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 1er cuatrimestre del 2018

Docentes

	*  Comisión 1: Javier Blanco.
	*  Comisión 2: Renato Cherini.
	*  Comisión 3: Matías Lee. 
	*  Comisión 4: Raul Fervari.

Horario de clases

	*  Comisión 1: lunes de 9 a 13 hs. en aula 28, miércoles de 9 a 13 hs. en aula 20.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:main?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>main</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:main?rev=1763225254&amp;do=diff</link>
        <description>Página actual:

1er cuatrimestre 2018

Páginas anteriores:

2do cuatrimestre 2015

1er cuatrimestre 2015

2do cuatrimestre 2012

1er cuatrimestre 2012

2do cuatrimestre 2011

1er cuatrimestre 2011

2do cuatrimestre 2010

Taller de Programación Declarativa 2009

Taller de Programación Funcional 2008

Taller de Programación Funcional 2007</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:parcialito08_2?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>parcialito08_2</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:parcialito08_2?rev=1763225254&amp;do=diff</link>
        <description>Soluciones a los ejercicios de los parcialitos de la segunda parte del taller

Recursión simple

	*  Definir la función masLargasQue, masLargasQue :: Int -&gt; [ [a] ] -&gt; [ [a] ], que dado un natural n y una lista de listas, devuelve las listas que tienen más de</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:problemas07?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>problemas07</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:problemas07?rev=1763225254&amp;do=diff</link>
        <description>Problemario del taller de Haskell

Funciones Simples

	*  Definir una función entre0y9.n, entre0y9 : Int -&gt; Bool que, dado un entero, devuelve True si el entero se encuentra entre 0 y 9.
probar con 0, 3, 5 y 9
	*  Definir una función rangoEdad.x, rangoEdad : Int</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:problemas08?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>problemas08</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:problemas08?rev=1763225254&amp;do=diff</link>
        <description>Problemario del taller de Haskell

Funciones Simples

	*  Definir una función entre0y9.n, entre0y9 : Int -&gt; Bool que, dado un entero, devuelve True si el entero se encuentra entre 0 y 9.
probar con 0, 3, 5 y 9
	*  Definir una función rangoEdad.x, rangoEdad : Int</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado10?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>recursado10</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:recursado10?rev=1763225254&amp;do=diff</link>
        <description>Organizacion de la materia

Horario de clases:

	*  Teórico: de 9 a 11 (aula 13) - Docentes Paula Estrella, Laura Alonso
	*  Práctico-taller: de 11 a 13 (laboratorio 30) - Docentes Araceli Acosta, Luciana Benotti 

Condiciones de promoción y aprobación:</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado11?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>recursado11</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:recursado11?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 2do Cuatrimestre del 2011

Horario de clases

	*  Teórico: Martes y Jueves de 9 a 11 (aula 13) - Luciana Benotti
	*  Práctico:  Martes y Jueves de 11 a 13 (laboratorio 28) - Araceli Acosta, Walter Alini y Ezequiel Orbe</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado12?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>recursado12</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:recursado12?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 2do Cuatrimestre del 2012

Horario de clases

	*  Lunes y Miércoles en el Laboratorio 28 de 9 a 13hs - Luciana Benotti 
	*  Miércoles en el Laboratorio 28 de 9 a 13hs - Walter Alini
	*  Lunes en el Laboratorio 28 de 9 a 13hs - Gisela Rossi y Marcos Gómez</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:recursado15?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>recursado15</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:recursado15?rev=1763225254&amp;do=diff</link>
        <description>Introducción a los Algoritmos: 1er cuatrimestre del 2015

Docentes

	*  Araceli Acosta (encargada)
	*  Luciana Benotti (encargada)
	*  Walter Alini
	*  Alejandro Gadea

Horario de clases

	*  Martes y jueves de 9 a 13 hs. en aula (laboratorio) 28.

Contacto</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:rincon?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rincon</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:rincon?rev=1763225254&amp;do=diff</link>
        <description>Wiki de Scripts Haskell

Esta página Wiki es editable por cualquiera.
La idea es poner pedazos de código Haskell con los programas que vayamos haciendo o nos parezcan interesantes.

A manera de inicio contribuyo con un Haskell script que contiene algunas definiciones del Capítulo 8 de</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:rincon07?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rincon07</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:rincon07?rev=1763225254&amp;do=diff</link>
        <description>UUhEIW , [url=&lt;http://rzcdtfwalzmd.com/]rzcdtfwalzmd[/url]&gt;, [link=&lt;http://scsjivcoobbh.com/]scsjivcoobbh[/link]&gt;, &lt;http://ljvnvoombbll.com/&gt;</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller1?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller1</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller1?rev=1763225254&amp;do=diff</link>
        <description>Clase 1

Plan para hoy

	*  Introducción al uso de Hugs
	*  Cómo escribir programas Haskell
	*  Escribiendo los primeros programas

Clase

Hugs es un intérprete del lenguaje funcional puro Haskell. 

Durante este taller escribiremos, probaremos y utilizaremos los programas funcionales que se dan en el teórico.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller2?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller2</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller2?rev=1763225254&amp;do=diff</link>
        <description>Clase 2

Plan para hoy

	*  Repaso de algunas soluciones de la clase anterior.
	*  Sintáxis de pattern matching.
	*  Trabajar sobre programas recursivos numéricos y con listas.
	*  Resolución de ejercicios.

Algunas soluciones de la clase anterior</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller3?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller3</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller3?rev=1763225254&amp;do=diff</link>
        <description>Clase 3

Plan para hoy

	*  Revisar algunas soluciones de la Wiki.
	*  Funciones que toman funciones.
	*  Casos mas complejos de recursiones con listas.
	*  Resolución de ejercicios.
	*  Anuncios varios.

Algunas soluciones de la clase anterior

Veamos algunas soluciones presentadas</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller4?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller4</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller4?rev=1763225254&amp;do=diff</link>
        <description>Clase 4

Plan para hoy

	*  Soluciones en la Wiki: estado.
	*  Contar frecuencia de palabras.
	*  Ejercicios.
	*  Como va a ser el parcialito 3 en máquina.  

Soluciones en la Wiki del Práctico 8: estado

	*  En Wiki de Scripts Haskell ya tenemos casi todos los ejercicios resueltos.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_1?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_1</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_1?rev=1763225254&amp;do=diff</link>
        <description>Clase 1

Introducción al uso de Hugs

Hugs es un intérprete del lenguaje funcional puro Haskell. 

Durante este taller escribiremos, probaremos y utilizaremos los programas funcionales que se dan en el teórico.

A Hugs se lo invoca desde la línea de comandos</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_2?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_2</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_2?rev=1763225254&amp;do=diff</link>
        <description>Clase 2

Comparación de Patrones (pattern matching)

Tuplas

En la clase anterior vimos de manera implícita como podíamos “destruir” una tupla en sus componentes


segundo :: (Int,Int) -&gt; Int
segundo (x,y) = y


Haskell brinda dos expresiones idiomáticas con patrones que son útilies para escribir código más claro.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_3?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_3</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_3?rev=1763225254&amp;do=diff</link>
        <description>Clase 3

Recursividad, caso base y caso inductivo

Hasta este momento habíamos visto funciones que llamaban a otras funciones, como por ejemplo ordenaSiPositivos, que llamaba a ambosPositivos para saber si los números con los que estaba tratando eran positivos o no. Ahora veremos funciones que se llaman a sí mismas, lo cual es un mecanismo muy fuerte y bien conocido llamado</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_4?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_4</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_4?rev=1763225254&amp;do=diff</link>
        <description>Clase 4

Aplicación parcial (secciones)

Tomemos la siguente función Haskell que es una ligera variación de esMultiplo que está en el problemario.


  esDivisor :: Int -&gt; Int -&gt; Bool
  esDivisor p n = n `mod` p == 0


Dado que el constructor de tipos funcionales</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_5?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_5</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_5?rev=1763225254&amp;do=diff</link>
        <description>Generalización de programas

En la clase anterior aprendimos cómo generalizar los programas que habíamos visto hasta el momento mediante dos estrategias básicas: generalización de tipos y generalización de funciones. Recordemos brevemente estas dos formas de generalización a través de un par de ejemplos.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_6?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07_6</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07_6?rev=1763225254&amp;do=diff</link>
        <description>Frecuencia de Palabras

Nos proponemos hacer un programa funcional que cuente la frecuencia de las ocurrencias de palabras en un texto.
El tipo de la función es el siguiente:


frecuencia :: [Palabra] -&gt; [(Palabra,Int)]


Donde Palabra es un sinónimo de tipo</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller07?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller07</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller07?rev=1763225254&amp;do=diff</link>
        <description>Taller de Programación Funcional

Introducción a los Algoritmos 2007

Clases
Abr 10-12  Clase 1  Introducción, manejo de Hugs, ciclo de edición, inferencia de tipos, tuplas, análisis por casos Abr 17-19  Clase 2  Pattern matching numérico, tuplas y listas, divide y conquista, estilo de código</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_1?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_1</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_1?rev=1763225254&amp;do=diff</link>
        <description>Clase 1

Introducción al uso de Hugs

Hugs es un intérprete del lenguaje funcional puro Haskell.

Durante este taller escribiremos, probaremos y utilizaremos programas funcionales.

A Hugs se lo invoca desde la línea de comandos o picando sobre el icono en nuestro entorno gráfico.
Una vez que el intérprete está activo, la pantalla se presenta con un</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_2?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_2</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_2?rev=1763225254&amp;do=diff</link>
        <description>Clase 2

Comparación de Patrones (pattern matching)

Tuplas

En la clase anterior vimos de manera implícita como podíamos “destruir” una tupla en sus componentes


segundo :: (Int,Int) -&gt; Int
segundo (x,y) = y


Haskell brinda dos expresiones idiomáticas con patrones que son útilies para escribir código más claro.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_3?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_3</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_3?rev=1763225254&amp;do=diff</link>
        <description>Clase 3

Recursividad, caso base y caso inductivo

Hasta este momento habíamos visto funciones que llamaban a otras funciones, como por ejemplo ordenaSiPositivos, que llamaba a ambosPositivos para saber si los números con los que estaba tratando eran positivos o no. Ahora veremos funciones que se llaman a sí mismas, lo cual es un mecanismo muy fuerte y bien conocido llamado</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_4?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_4</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_4?rev=1763225254&amp;do=diff</link>
        <description>Clase 4

Aplicación parcial (secciones)

Tomemos la siguente función Haskell que es una ligera variación de esMultiplo que está en el problemario: la función esDivisor, que toma dos enteros y devuelve True si el segundo es divisor del primero.


  esDivisor :: Int -&gt; Int -&gt; Bool
  esDivisor p n = n `mod` p == 0</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_5?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_5</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_5?rev=1763225254&amp;do=diff</link>
        <description>Clase 5

Tratando funciones más complejas

Como vimos en los ejercicios de la clase anterior, en muchos casos las funciones que queremos hacer no son casos “puros” de alguna de las tres generalizaciones, sino que para solucionarlas debemos dar un giro de tuerca más. Vamos a ver dos estrategias distintas.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_6?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_6</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_6?rev=1763225254&amp;do=diff</link>
        <description>Clase 6

Mejorando al eficiencia (optimización de cómputo)

Vimos que hay diferentes formas de definir una misma función. Estas distintas definiciones pueden resultar muy distintas en eficiencia. Vamos a ver algunas estrategias para mejorar la eficiencia de las funciones.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_r1?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08_r1</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08_r1?rev=1763225254&amp;do=diff</link>
        <description>Repaso de funciones no recursivas y recursivas simples

* Definir la función estanOrdenados, estanOrdenados :: (Int,Int) -&gt; Bool, que dado un par de números enteros devuelve True si los números están ordenados de menor a mayor. 

* Definir la función</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller08?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller08</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller08?rev=1763225254&amp;do=diff</link>
        <description>Taller de Programación Funcional

Introducción a los Algoritmos 2008

Clases
Abr 8-10  Clase 1  Introducción, manejo de Hugs, ciclo de edición, inferencia de tipos, tuplas, análisis por casos Abr 15-17  Clase 2  Pattern matching numérico, tuplas y listas, divide y conquista, estilo de código</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_1?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_1</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_1?rev=1763225254&amp;do=diff</link>
        <description>Introducción a la Programación Lógica

Qué es la programación declarativa?

Este año vamos a ver aproximaciones distintas a la programación declarativa: programación lógica (en prolog) y programación funcional (en haskell). Este tipo de programación tiene varias diferencias con la programación imperativa que quizás muchos de ustedes conozcan (C, C++, Visual Basic, Perl).</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_2?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_2</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_2?rev=1763225254&amp;do=diff</link>
        <description>Consolidando conceptos de programación lógica

En esta clase vamos a consolidar los conceptos que vimos en la clase anterior. Primero, vamos a repasar y profundizar algunos de los conceptos que vimos en la clase anterior. Luego, vamos a profundizar en el ejercicio de definir las relaciones familiares, tal como lo planteamos en</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_3?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_3</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_3?rev=1763225254&amp;do=diff</link>
        <description>Introducción a la Programación Funcional

Después de iniciarnos en la programación lógica en prolog, vamos a empezar con la programación funcional en haskell. 

Iniciando haskell

Al igual que con prolog, vamos a estar usando un intérprete de haskell. Un intérprete de haskell es un programa que entiende haskell, por lo tanto, puede entender y ejecutar los programas que vamos a hacer en haskell. El intérprete que vamos a estar usando es</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_4?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_4</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_4?rev=1763225254&amp;do=diff</link>
        <description>Consolidando Programación Funcional

Tipos de datos y comparación de patrones

Tipos

En la clase anterior vimos que haskell es un lenguaje tipado. La definición de una función suele venir siempre precedida de su signatura de tipos, que tiene la siguiente forma:</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_5?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_5</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_5?rev=1763225254&amp;do=diff</link>
        <description>Recursividad

En esta clase vamos a ver ejemplos principalmente en haskell, pero los principios que aprendamos se aplican igualmente a prolog, que tiene el mismo manejo de la recursividad y las listas, con una sintaxis muy parecida, que vemos en el último apartado de esta clase, antes de los ejercicios.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_6?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_6</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_6?rev=1763225254&amp;do=diff</link>
        <description>Repaso de recursión

En la clase anterior introdujimos el concepto de recursividad o recursión. En esta clase vamos a consolidarlo, repasando sus fundamentos y haciendo ejercicios para tratar de entenderlo.

En primer lugar, recordemos lo que se espera que pueda hacer un programa recursivo:</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_7?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_7</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_7?rev=1763225254&amp;do=diff</link>
        <description>Parcialito 1

comisión mañana

	*  Dada la siguiente base de conocimiento en prolog, crear las reglas necesarias para determinar si un estudiante podrá inscribirse en una materia determinada, si sabemos que para cursar Algoritmos II hay que tener aprobado Introducción a los Algoritmos y regularizada Algoritmos I.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_8?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_8</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_8?rev=1763225254&amp;do=diff</link>
        <description>Generalización de funciones recursivas y alto orden

Generalización

En esta clase vamos a ver las funciones recursivas en listas con algo más de abstracción. Ya vimos que los diferentes tipos de funciones comparten una estructura común, con algunas muy pequeñas variaciones (el predicado que se filtra, la función que se aplica, el operador con el que se acumula). Veremos que en haskell podemos hacer que estas pequeñas variaciones sean un parámetro más de la función. De esta forma vamos a poder g…</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_9?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_9</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_9?rev=1763225254&amp;do=diff</link>
        <description>Resolviendo problemas complejos

Problemas &quot;de la vida real&quot;

Los Amigos de Mis Amigos

Empecemos con nuestro ejercicio estrella: recomendar amigos en una red social. En el día anterior especificamos el problema a alto nivel, es decir, distinguimos sus diferentes partes pero no entramos en detalle sobre cómo se podrían implementar cada una de estas partes. Repasemos qué era lo que tenía que hacer el programa, y añadamos de paso un par de funcionalidades más</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_10?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_10</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_10?rev=1763225254&amp;do=diff</link>
        <description>Parcial 1 (recuperatorio)

ejercicio 1 (prolog, no recursivo)

	*  Dada la siguiente base de conocimiento en prolog, que especifica tres ingredientes necesarios para cocinar un platillo y los que tengo en la casa, crear las reglas necesarias para saber si podremos cocinar un platillo.</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_soluciones?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09_soluciones</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09_soluciones?rev=1763225254&amp;do=diff</link>
        <description>Soluciones a ejercicios

ejercicios de prolog, 30/03/09

familia


%%%%%%%%%%%%
%% HECHOS %%
%%%%%%%%%%%%

mujer(pepa).
mujer(lucía).
mujer(blanca).
mujer(rosa).
mujer(alba).
mujer(inés).
mujer(irene).
hombre(armando).
hombre(julián).
hombre(esteban).
hombre(mario).
hombre(alejandro).
hombre(martín).
hombre(matías).
progenitor(pepa,lucía).
progenitor(pepa,blanca).
progenitor(pepa,mario).
progenitor(lucía,rosa).
progenitor(lucía,alba).
progenitor(blanca,inés).
progenitor(blanca,martín).
progenito…</description>
    </item>
    <item rdf:about="https://wiki.cs.famaf.unc.edu.ar/introalg:taller09?rev=1763225254&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-15T16:47:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>taller09</title>
        <link>https://wiki.cs.famaf.unc.edu.ar/introalg:taller09?rev=1763225254&amp;do=diff</link>
        <description>Taller de Programación Declarativa

Introducción a los Algoritmos 2009

Las clases serán los lunes en el aula D2 (laboratorio de las baterías D), en dos comisiones: comisión 1, de 11:30 a 14:30, comisión 2, de 14:30 a 17:30.

Este año vamos a ver aproximaciones distintas a la</description>
    </item>
</rdf:RDF>
