{"id":1215,"date":"2015-03-19T06:00:21","date_gmt":"2015-03-19T04:00:21","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=1215"},"modified":"2015-05-01T08:59:24","modified_gmt":"2015-05-01T06:59:24","slug":"arboles-con-todas-sus-ramas-con-algun-elemento-que-cumple-una-propiedad","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/arboles-con-todas-sus-ramas-con-algun-elemento-que-cumple-una-propiedad\/","title":{"rendered":"\u00c1rboles con todas sus ramas con alg\u00fan elemento que cumple una propiedad"},"content":{"rendered":"<p>En l\u00f3gica temporal, la expresi\u00f3n AFp significa que en alg\u00fan momento en el futuro se cumple la propiedad p. Trasladado a su interpretaci\u00f3n en forma de \u00e1rbol lo que quiere decir es que en todas las ramas (desde la ra\u00edz hasta una hoja) hay un nodo que cumple la propiedad p.<\/p>\n<p>Consideramos el siguiente tipo algebraico de los \u00e1rboles binarios:<\/p>\n<pre lang=\"text\">\n   data Arbol a = H a\n                | N a (Arbol a) (Arbol a)\n                  deriving (Show,Eq)\n<\/pre>\n<p>y el siguiente \u00e1rbol<\/p>\n<pre lang=\"text\">\n   a1 :: Arbol Int\n   a1 = N 9 (N 3 (H 2) (N 4 (H 1) (H 5))) (H 8)\n<\/pre>\n<p>En este \u00e1rbol se cumple (AF par); es decir, en todas las ramas hay un n\u00famero par; pero no se cumple (AF primo); es decir, hay ramas en las que no hay ning\u00fan n\u00famero primo. Donde una rama es la secuencia de nodos desde el nodo inicial o ra\u00edz hasta una hoja.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   propiedadAF :: (a -> Bool) -> Arbol a -> Bool\n<\/pre>\n<p>tal que (propiedadAF p a) se verifica si se cumple (AF p) en el \u00e1rbol a; es decir, si en todas las ramas hay un nodo (interno u hoja) que cumple la propiedad p. Por ejemplo<\/p>\n<pre lang=\"text\">\n   propiedadAF even a1  ==  True\n   propiedadAF (<7) a1  ==  False\n<\/pre>\n<h4>Soluciones<\/h4>\n<p>[schedule expon='2015-03-26' expat=\"06:00\"]<\/p>\n<pre lang=\"haskell\">\ndata Arbol a = H a\n             | N a (Arbol a) (Arbol a)\n             deriving (Show,Eq)\n\na1 :: Arbol Int\na1 = N 9 (N 3 (H 2) (N 4 (H 1) (H 5))) (H 8)\n\npropiedadAF :: (a -> Bool) -> Arbol a -> Bool\npropiedadAF p (H a)     = p a\npropiedadAF p (N a i d) = p a || (propiedadAF p i && propiedadAF p d)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En l\u00f3gica temporal, la expresi\u00f3n AFp significa que en alg\u00fan momento en el futuro se cumple la propiedad p. Trasladado a su interpretaci\u00f3n en forma de \u00e1rbol lo que quiere decir es que en todas las ramas (desde la ra\u00edz hasta una hoja) hay un nodo que cumple la propiedad p. Consideramos el siguiente tipo&#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":[4],"tags":[269,6],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1215"}],"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=1215"}],"version-history":[{"count":5,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1215\/revisions"}],"predecessor-version":[{"id":1258,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1215\/revisions\/1258"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=1215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=1215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=1215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}