{"id":7302,"date":"2022-09-08T00:21:29","date_gmt":"2022-09-07T18:51:29","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/"},"modified":"2022-09-08T00:21:29","modified_gmt":"2022-09-07T18:51:29","slug":"solved-comparison-of-two-lists-in-haskell","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/","title":{"rendered":"[Solved] Comparison of two lists in Haskell"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-34476797\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"34476797\" data-parentid=\"34476690\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p><strong>Edit<\/strong>: Another version suggested by David Young is<\/p>\n<pre><code>findIndicesIn xs ys = findIndices (`elem` ys) xs\n<\/code><\/pre>\n<p>which I prefer to my solution below.<\/p>\n<hr>\n<p>If I understand correctly, you have two lists. Call them <code>xs<\/code> and <code>ys<\/code>. You want to find the index in <code>xs<\/code> of each element in <code>ys<\/code>. You don&#8217;t mention what you want to do if the element in <code>ys<\/code> is not contained in <code>xs<\/code>, so I am going to choose something reasonable for you. Here it is:<\/p>\n<pre><code>findIndicesIn :: Eq a =&gt; [a] -&gt; [a] -&gt; [Maybe Int]\nfindIndicesIn xs ys = map (`elemIndex` xs) ys\n<\/code><\/pre>\n<p><code>elemIndex :: Eq a =&gt; a -&gt; [a] -&gt; Maybe Int<\/code> finds the index of the given element in the list (comparing with <code>(==)<\/code>). If the element does not exist, <code>Nothing<\/code> is returned instead. To find all the indices, we map over each element in <code>ys<\/code> and try to find it in <code>xs<\/code> using <code>elemIndex<\/code>. Section syntax is used instead of <code>flip elemIndex xs<\/code> or <code>\\y -&gt; elemIndex y xs<\/code> for concision.<\/p>\n<p>The result is a list of <code>Maybe Int<\/code> representing the <em>possible<\/em> indices in <code>xs<\/code> of each element in <code>ys<\/code>. Note that if you do not keep track of missing elements, the positions of the indices in the resulting list will no longer correspond to the positions of the elements in <code>ys<\/code>.<\/p>\n<p>You can also write this using fewer points as<\/p>\n<pre><code>findIndicesIn :: Eq a =&gt; [a] -&gt; [a] -&gt; [Maybe Int]\nfindIndicesIn xs = map (`elemIndex` xs)\n<\/code><\/pre>\n<p>YMMV on which one is more clear. Both are equivalent. This version is pretty readable IMO. You can go one step further and write<\/p>\n<pre><code>findIndicesIn = map . flip elemIndex\n<\/code><\/pre>\n<p>but personally I find this less readable. YMMV again.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">14<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Comparison of two lists in Haskell <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Edit: Another version suggested by David Young is findIndicesIn xs ys = findIndices (`elem` ys) xs which I prefer to my solution below. If I understand correctly, you have two lists. Call them xs and ys. You want to find the index in xs of each element in ys. You don&#8217;t mention what you &#8230; <a title=\"[Solved] Comparison of two lists in Haskell\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\" aria-label=\"More on [Solved] Comparison of two lists in Haskell\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[947,1150,540,2030],"class_list":["post-7302","post","type-post","status-publish","format-standard","hentry","category-solved","tag-comparison","tag-haskell","tag-list","tag-mask"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Comparison of two lists in Haskell - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Comparison of two lists in Haskell - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Edit: Another version suggested by David Young is findIndicesIn xs ys = findIndices (`elem` ys) xs which I prefer to my solution below. If I understand correctly, you have two lists. Call them xs and ys. You want to find the index in xs of each element in ys. You don&#8217;t mention what you ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-07T18:51:29+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Comparison of two lists in Haskell\",\"datePublished\":\"2022-09-07T18:51:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\"},\"wordCount\":219,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"comparison\",\"haskell\",\"list\",\"mask\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\",\"name\":\"[Solved] Comparison of two lists in Haskell - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-07T18:51:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Comparison of two lists in Haskell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Comparison of two lists in Haskell - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Comparison of two lists in Haskell - JassWeb","og_description":"[ad_1] Edit: Another version suggested by David Young is findIndicesIn xs ys = findIndices (`elem` ys) xs which I prefer to my solution below. If I understand correctly, you have two lists. Call them xs and ys. You want to find the index in xs of each element in ys. You don&#8217;t mention what you ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/","og_site_name":"JassWeb","article_published_time":"2022-09-07T18:51:29+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Comparison of two lists in Haskell","datePublished":"2022-09-07T18:51:29+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/"},"wordCount":219,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["comparison","haskell","list","mask"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/","url":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/","name":"[Solved] Comparison of two lists in Haskell - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-07T18:51:29+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-comparison-of-two-lists-in-haskell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Comparison of two lists in Haskell"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/7302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=7302"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/7302\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=7302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=7302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=7302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}