{"id":768,"date":"2014-12-03T06:00:49","date_gmt":"2014-12-03T04:00:49","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=768"},"modified":"2014-12-27T20:46:15","modified_gmt":"2014-12-27T18:46:15","slug":"expresiones-vectoriales","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/expresiones-vectoriales\/","title":{"rendered":"Expresiones vectoriales"},"content":{"rendered":"<h4>Enunciado<\/h4>\n<pre lang=\"text\">\n-- El siguiente tipo de dato define representa las expresiones\n-- vectoriales formadas por un vector, la suma de dos expresiones\n-- vectoriales o el producto de un entero por una expresi\u00f3n vectorial. \n--    data ExpV = Vec Int Int\n--              | Sum ExpV ExpV\n--              | Mul Int ExpV\n--              deriving Show\n-- \n-- Definir la funci\u00f3n \n--    valor :: ExpV -> (Int,Int)\n-- tal que (valor e) es el valor de la expresi\u00f3n vectorial c. Por\n-- ejemplo, \n--    valor (Vec 1 2)                                  ==  (1,2)\n--    valor (Sum (Vec 1 2 ) (Vec 3 4))                 ==  (4,6)\n--    valor (Mul 2 (Vec 3 4))                          ==  (6,8)\n--    valor (Mul 2 (Sum (Vec 1 2 ) (Vec 3 4)))         ==  (8,12)\n--    valor (Sum (Mul 2 (Vec 1 2)) (Mul 2 (Vec 3 4)))  ==  (8,12)\n<\/pre>\n<pre lang=\"haskell\">\ndata ExpV = Vec Int Int\n          | Sum ExpV ExpV\n          | Mul Int ExpV\n          deriving Show\n\n-- 1\u00aa soluci\u00f3n\n-- ===========\nvalor :: ExpV -> (Int,Int)\nvalor (Vec x y)   = (x,y)\nvalor (Sum e1 e2) = (x1+x2,y1+y2) where (x1,y1) = valor e1  \n                                        (x2,y2) = valor e2  \nvalor (Mul n e)   = (n*x,n*y) where (x,y) = valor e  \n\n-- 2\u00aa soluci\u00f3n\n-- ===========\nvalor2 :: ExpV -> (Int,Int)\nvalor2 (Vec a b)   = (a, b)\nvalor2 (Sum e1 e2) = suma (valor2 e1) (valor2 e2)\nvalor2 (Mul n e1)  = multiplica n (valor2 e1)\n\nsuma :: (Int,Int) -> (Int,Int) -> (Int,Int)\nsuma (a,b) (c,d) = (a+c,b+d)\n\nmultiplica :: Int -> (Int, Int) -> (Int, Int)\nmultiplica n (a,b) = (n*a,n*b)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Enunciado &#8212; El siguiente tipo de dato define representa las expresiones &#8212; vectoriales formadas por un vector, la suma de dos expresiones &#8212; vectoriales o el producto de un entero por una expresi\u00f3n vectorial. &#8212; data ExpV = Vec Int Int &#8212; | Sum ExpV ExpV &#8212; | Mul Int ExpV &#8212; deriving Show &#8211;&#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":[6,133],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/768"}],"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=768"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/768\/revisions"}],"predecessor-version":[{"id":871,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/768\/revisions\/871"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=768"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=768"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}