{"id":608,"date":"2014-11-24T07:00:08","date_gmt":"2014-11-24T05:00:08","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=608"},"modified":"2014-12-27T20:36:09","modified_gmt":"2014-12-27T18:36:09","slug":"elemento-comun-en-la-menor-posicion","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/elemento-comun-en-la-menor-posicion\/","title":{"rendered":"Elemento com\u00fan en la menor posici\u00f3n"},"content":{"rendered":"<h4>Enunciado<\/h4>\n<pre lang=\"text\">\n-- Definir la funci\u00f3n\n--    elemento :: Eq a => [a] -> [a] -> [a]\n-- tal que (elemento xs ys) es la lista formada por el elemento com\u00fan a\n-- xs e ys con la menor posici\u00f3n. Por ejemplo.\n--    elemento [3,7,6,9,8,0] [5,4,2,7,8,6,9]  ==  [7]\n--    elemento [3,7,6,9] [9,5,6]              ==  [9]\n--    elemento [5,3,6] [7,6,3]                ==  [3]\n--    elemento [3,7,6,3,8,0] [5,4,9,1,4,2,1]  ==  []\n--    elemento [2,3,5] [7,4]                  ==  []\n--\n-- Nota: Como se observa en el 3\u00aa ejemplo, en el caso de que un elemento\n-- x de xs pertenezca a ys y el elemento de ys en la misma posici\u00f3n que\n-- x pertenezca a xs, se elige como el de menor posici\u00f3n el de xs.\n<\/pre>\n<h4>Soluciones<\/h4>\n<p>[schedule expon=&#8217;2014-12-01&#8242; expat=\u00bb06:00&#8243;]<\/p>\n<ul>\n<li>Las soluciones se pueden escribir en los comentarios hasta el 1 de diciembre.\n<li>El c\u00f3digo se debe escribir entre una l\u00ednea con &#60;pre lang=\u00bbhaskell\u00bb&#62; y otra con &#60;\/pre&#62;\n<\/ul>\n<p>[\/schedule]<\/p>\n<p>[schedule on=&#8217;2014-12-01&#8242; at=\u00bb06:00&#8243;]<\/p>\n<pre lang=\"haskell\">\r\nimport Test.QuickCheck\r\n\r\n-- 1\u00aa definici\u00f3n:\r\nelemento1 :: Eq a => [a] -> [a] -> [a]\r\nelemento1 p@(x:xs) q@(y:ys)\r\n    | x `elem` q  = [x]\r\n    | y `elem` xs = [y]\r\n    | otherwise   = elemento1 xs ys\r\nelemento1 _ _ = []\r\n\r\n-- 2\u00aa definici\u00f3n:\r\nelemento2 :: Eq a => [a] -> [a] -> [a]\r\nelemento2 [] _ = []\r\nelemento2 (x:xs) ys\r\n    | x `elem` ys = [x]\r\n    | otherwise   = elemento2 ys xs\r\n\r\n-- Propiedad de equivalencia de las definiciones\r\nprop_elemento :: [Int] -> [Int] -> Bool\r\nprop_elemento xs ys =\r\n    elemento1 xs ys == elemento2 xs ys\r\n\r\n-- La comprobaci\u00f3n es\r\n--    ghci> quickCheck prop_elemento\r\n--    +++ OK, passed 100 tests.\r\n...\r\n<\/pre>\n<p>[\/schedule]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enunciado &#8212; Definir la funci\u00f3n &#8212; elemento :: Eq a => [a] -> [a] -> [a] &#8212; tal que (elemento xs ys) es la lista formada por el elemento com\u00fan a &#8212; xs e ys con la menor posici\u00f3n. Por ejemplo. &#8212; elemento [3,7,6,9,8,0] [5,4,2,7,8,6,9] == [7] &#8212; elemento [3,7,6,9] [9,5,6] == [9] &#8212; elemento&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","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":[5],"tags":[6],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/608"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=608"}],"version-history":[{"count":6,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/608\/revisions"}],"predecessor-version":[{"id":734,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/608\/revisions\/734"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}