{"id":5497,"date":"2016-09-23T11:26:33","date_gmt":"2016-09-23T09:26:33","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=5497"},"modified":"2016-09-24T11:28:14","modified_gmt":"2016-09-24T09:28:14","slug":"i1m2016-introduccion-a-la-programacion-funcional-con-haskell","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2016-introduccion-a-la-programacion-funcional-con-haskell\/","title":{"rendered":"I1M2016: Introducci\u00f3n a la programaci\u00f3n funcional con Haskell"},"content":{"rendered":"<p>La segunda parte de la clase de hoy del curso de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-16\">Inform\u00e1tica<\/a> (de 1\u00ba de Grado en Matem\u00e1ticas) ha consistido en una introducci\u00f3n a la programaci\u00f3n funcional basada en el <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-16\/temas\/tema-1.html\">tema 1<\/a>. Se ha explicado<\/p>\n<ul>\n<li>c\u00f3mo definir y evaluar funciones en Haskell,<\/li>\n<li>c\u00f3mo comprobar propiedades de funciones en Haskell con QuickCheck,<\/li>\n<li>c\u00f3mo se resuelve un problema mediante programaci\u00f3n imperativa y funcional,<\/li>\n<li>los rasgos caracter\u00edsticos de la prograci\u00f3n funcional con Haskell y <\/li>\n<li>c\u00f3mo definir funciones mediante recursi\u00f3n y comprensi\u00f3n.<\/li>\n<\/ul>\n<p>En la tercera parte de la clase se ha explicado el <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-16\/temas\/tema-2.html\">tema 2<\/a> en el que se hace una introducci\u00f3n a la programaci\u00f3n con Haskell usando emacs como entorno de programaci\u00f3n. Concretamente, se ha explicado c\u00f3mo<\/p>\n<ul>\n<li>usar Haskell como calculadora aritm\u00e9tica (con las funciones +, -, *, \/, div y ^).<\/li>\n<li>escribir guiones de Haskell en emacs.<\/li>\n<li>cargar los guiones y evaluar expresiones con las funciones definidas.  <\/li>\n<\/ul>\n<p>Tambi\u00e9n se han comentado las funciones sobre n\u00fameros, listas y booleanos en el <a href=\"http:\/\/bit.ly\/1uJZiqi\">resumen de funciones<\/a>.<\/p>\n<p>Finalmente, se ha mostrado el uso de Haskell y emacs (la sesi\u00f3n est\u00e1 grabada en este <a href=\"http:\/\/youtu.be\/T9wbXgPkcXA\">v\u00eddeo<\/a>) y el proceso para la soluci\u00f3n colaborativa de ejercicios (la sesi\u00f3n est\u00e1 grabada en este <a href=\"http:\/\/youtu.be\/B1qfZM7_MWI\">v\u00eddeo<\/a>).<\/p>\n<p>Se han propuesto como ejercicios los de la <a href=\"http:\/\/bit.ly\/2cAvaeL\">1\u00aa relaci\u00f3n<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La segunda parte de la clase de hoy del curso de Inform\u00e1tica (de 1\u00ba de Grado en Matem\u00e1ticas) ha consistido en una introducci\u00f3n a la programaci\u00f3n funcional basada en el tema 1. Se ha explicado c\u00f3mo definir y evaluar funciones en Haskell, c\u00f3mo comprobar propiedades de funciones en Haskell con QuickCheck, c\u00f3mo se resuelve un&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[260],"tags":[270,313],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/5497"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=5497"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/5497\/revisions"}],"predecessor-version":[{"id":5498,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/5497\/revisions\/5498"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=5497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=5497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=5497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}