{"id":2211,"date":"2012-10-09T15:51:05","date_gmt":"2012-10-09T15:51:05","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=2211"},"modified":"2013-03-08T05:48:11","modified_gmt":"2013-03-08T05:48:11","slug":"i1m2012-ejercicios-de-definiciones-por-composicion-de-funciones-sobre-listas-y-booleanos","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2012-ejercicios-de-definiciones-por-composicion-de-funciones-sobre-listas-y-booleanos\/","title":{"rendered":"I1M2012: Ejercicios de definiciones por composici\u00f3n de funciones sobre listas y booleanos"},"content":{"rendered":"<p>En la primera parte de la clase de hoy del curso de  <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-12\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> hemos comentado las soluciones a los ejercicios <a href=\"https:\/\/www.glc.us.es\/~jalonso\/ejerciciosI1M2012G2\/images\/0\/0a\/Rel_2.hs\">2\u00aa relaci\u00f3n<\/a> sobre definiciones por composici\u00f3n de funciones sobre listas y booleanos.<\/p>\n<p>Los ejercicios y su soluci\u00f3n se muestran a continuaci\u00f3n<br \/>\n<!--more--><\/p>\n<pre lang=\"haskell\">\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 5. Definir la funci\u00f3n interior tal que (interior xs) es la\r\n-- lista obtenida eliminando los extremos de la lista |. Por ejemplo,\r\n--    interior [2,5,3,7,3]  ==  [5,3,7]\r\n--    interior [2..7]       ==  [3,4,5,6]\r\n-- ---------------------------------------------------------------------\r\n\r\ninterior xs = tail (init xs)\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 6. Definir la funci\u00f3n finales tal que (finales n xs) es la\r\n-- lista formada por los n finales elementos de xs. Por ejemplo,\r\n--    finales 3 [2,5,4,7,9,6]  ==  [7,9,6]\r\n-- ---------------------------------------------------------------------\r\n \r\nfinales n xs = drop (length xs - n) xs \r\n \r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 7. Definir la funci\u00f3n segmento tal que (segmento m n xs) es\r\n-- la lista de los elementos de xs comprendidos entre las posiciones m y\r\n-- n. Por ejemplo,\r\n--    segmento 3 4 [3,4,1,2,7,9,0]  ==  [1,2]\r\n--    segmento 3 5 [3,4,1,2,7,9,0]  ==  [1,2,7]\r\n--    segmento 5 3 [3,4,1,2,7,9,0]  ==  []\r\n-- ---------------------------------------------------------------------\r\n \r\nsegmento m n xs = drop (m-1) (take n xs)\r\n \r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 8. Definir la funci\u00f3n extremos tal que (extremos n xs) es\r\n-- la lista formada por los n primeros elementos de xs y los n finales\r\n-- elementos de xs. Por ejemplo, \r\n--    extremos 3 [2,6,7,1,2,4,5,8,9,2,3]  ==  [2,6,7,9,2,3]\r\n-- ---------------------------------------------------------------------\r\n\r\nextremos n xs = take n xs ++ drop (length xs - n) xs\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 9. Definir la funci\u00f3n mediano tal que (mediano x y z) es el\r\n-- n\u00famero mediano de los tres n\u00fameros x, y y z. Por ejemplo,\r\n--    mediano 3 2 5  ==  3\r\n--    mediano 2 4 5  ==  4\r\n--    mediano 2 6 5  ==  5\r\n--    mediano 2 6 6  ==  6\r\n-- Indicaci\u00f3n: Usar maximum y minimum.\r\n-- ---------------------------------------------------------------------\r\n \r\nmediano x y z = x + y + z- minimum [x,y,z] - maximum [x,y,z]\r\n \r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 10. Definir la funci\u00f3n tresIguales tal que \r\n-- (tresIguales x y z) se verifica si los elementos x, y y z son\r\n-- iguales. Por ejemplo, \r\n--    tresIguales 4 4 4  ==  True\r\n--    tresIguales 4 3 4  ==  False\r\n-- ---------------------------------------------------------------------\r\n\r\ntresIguales x y z = x == y && y == z\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 11. Definir la funci\u00f3n tresDiferentes tal que \r\n-- (tresDiferentes x y z) se verifica si los elementos x, y y z son\r\n-- distintos. Por ejemplo, \r\n--    tresDiferentes 3 5 2  ==  True\r\n--    tresDiferentes 3 5 3  ==  False\r\n-- ---------------------------------------------------------------------\r\n\r\ntresDiferentes x y z = x \/= y && x \/= z && y \/= z\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 12. Definir la funci\u00f3n cuatroIguales tal que \r\n-- (cuatroIguales x y z u) se verifica si los elementos x, y, z y u son\r\n-- iguales. Por ejemplo, \r\n--    cuatroIguales 5 5 5 5   ==  True\r\n--    cuatroIguales 5 5 4 5   ==  False\r\n-- Indicaci\u00f3n: Usar la funci\u00f3n tresIguales.\r\n-- ---------------------------------------------------------------------\r\n\r\ncuatroIguales x y z u = x == y && tresIguales y z u\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En la primera parte de la clase de hoy del curso de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas hemos comentado las soluciones a los ejercicios 2\u00aa relaci\u00f3n sobre definiciones por composici\u00f3n de funciones sobre listas y booleanos. Los ejercicios y su soluci\u00f3n se muestran a continuaci\u00f3n<\/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":[1],"tags":[298],"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\/2211"}],"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=2211"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/2211\/revisions"}],"predecessor-version":[{"id":2766,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/2211\/revisions\/2766"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=2211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=2211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=2211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}