{"id":6624,"date":"2019-04-05T19:42:21","date_gmt":"2019-04-05T17:42:21","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=6624"},"modified":"2019-04-05T19:42:21","modified_gmt":"2019-04-05T17:42:21","slug":"i1m2018-el-tad-de-los-monticulos-en-haskell","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2018-el-tad-de-los-monticulos-en-haskell\/","title":{"rendered":"I1M2018: El TAD de los mont\u00edculos en Haskell"},"content":{"rendered":"<p>En la primera parte de la clase de hoy de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-18\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> hemos estudiado el tipo abstracto de datos de los mont\u00edculos en Haskell.<\/p>\n<p>En primer lugar, se han introduccido los mont\u00edculos usando el art\u00edculo <a href=\"http:\/\/bit.ly\/1CddfTX\">Functional heap &#8211; Leftist tree<\/a>.<\/p>\n<p>En segundo lugar, se ha seguido el mismo patr\u00f3n que en los anteriores tipos de datos para estudiar el TAD de los mont\u00edculos:<\/p>\n<ul>\n<li>elecci\u00f3n de las operaciones b\u00e1sicas,<\/li>\n<li>especificaci\u00f3n de sus propiedades,<\/li>\n<li>implementaci\u00f3n en Haskel,<\/li>\n<li>an\u00e1lisis de la complejidad de las definiciones de las operaciones b\u00e1sicas y<\/li>\n<li>verificaci\u00f3n con QuickCheck de sus propiedades caracter\u00edsticas.<\/li>\n<\/ul>\n<p>En tercer lugar, se ha usado los mont\u00edculos para implementar el TAD de las colas de prioridad.<\/p>\n<p>Finalmente, se ha comentado las librer\u00edas de Haskell para mont\u00edculos: <a href=\"http:\/\/hackage.haskell.org\/package\/llrbtree-0.1.1\/docs\/Data-Heap-Leftist.html\">Data.Heap.Leftist<\/a> y <a href=\"http:\/\/hackage.haskell.org\/package\/heap-1.0.4\/docs\/Data-Heap.html\">Data.Heap<\/a>. La primera se corresponde totalmente con la implementaci\u00f3n presentada en clase y la segunda es una generalizaci\u00f3n ampliada.<\/p>\n<p>Los apuntes correspondientes a la clase son \n<!-- iframe plugin v.5.0 wordpress.org\/plugins\/iframe\/ -->\n<iframe loading=\"lazy\" src=\"https:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-18\/temas\/tema-20.html\" width=\"100%\" frameborder=\"1\" height=\"500\" scrolling=\"yes\" class=\"iframe-class\"><\/iframe>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En la primera parte de la clase de hoy de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas hemos estudiado el tipo abstracto de datos de los mont\u00edculos en Haskell. En primer lugar, se han introduccido los mont\u00edculos usando el art\u00edculo Functional heap &#8211; Leftist tree. En segundo lugar, se ha seguido el mismo patr\u00f3n que&#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":[320],"tags":[],"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\/6624"}],"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=6624"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/6624\/revisions"}],"predecessor-version":[{"id":6625,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/6624\/revisions\/6625"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=6624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=6624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=6624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}