{"id":2403,"date":"2016-05-04T05:58:27","date_gmt":"2016-05-04T03:58:27","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2403"},"modified":"2021-04-25T16:27:34","modified_gmt":"2021-04-25T14:27:34","slug":"periodo-de-una-lista-2016","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/periodo-de-una-lista-2016\/","title":{"rendered":"Per\u00edodo de una lista"},"content":{"rendered":"<p>El per\u00edodo de una lista xs es la lista m\u00e1s corta ys tal que xs se puede obtener concatenando varias veces la lista ys. Por ejemplo, el per\u00edodo \u00ababababab\u00bb es \u00abab\u00bb ya que \u00ababababab\u00bb se obtiene repitiendo tres veces la lista \u00abab\u00bb.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   periodo :: Eq a => [a] -> [a]\n<\/pre>\n<p>tal que (periodo xs) es el per\u00edodo de xs. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   periodo \"ababab\"      ==  \"ab\"\n   periodo \"buenobueno\"  ==  \"bueno\"\n   periodo \"oooooo\"      ==  \"o\"\n   periodo \"sevilla\"     ==  \"sevilla\"\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nperiodo :: Eq a => [a] -> [a]\nperiodo xs = take n xs\n    where l = length xs\n          n = head [m | m <- divisores l, \n                        concat (replicate (l `div` m) (take m xs)) == xs]\n\n-- (divisores n) es la lista de los divisores de n. Por ejemplo,\n--    divisores 96  ==  [1,2,3,4,6,8,12,16,24,32,48,96]\ndivisores :: Int -> [Int]\ndivisores n = [x | x <- [1..n], n `mod` x == 0]\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>El per\u00edodo de una lista xs es la lista m\u00e1s corta ys tal que xs se puede obtener concatenando varias veces la lista ys. Por ejemplo, el per\u00edodo \u00ababababab\u00bb es \u00abab\u00bb ya que \u00ababababab\u00bb se obtiene repitiendo tres veces la lista \u00abab\u00bb. Definir la funci\u00f3n periodo :: Eq a => [a] -> [a] tal que&#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":[7],"tags":[8,12,71,89,19,47],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2403"}],"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=2403"}],"version-history":[{"count":7,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2403\/revisions"}],"predecessor-version":[{"id":6338,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2403\/revisions\/6338"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}