{"id":109,"date":"2008-03-26T03:31:31","date_gmt":"2008-03-26T08:31:31","guid":{"rendered":"http:\/\/mariusbancila.ro\/blog\/?p=109"},"modified":"2008-03-26T03:32:53","modified_gmt":"2008-03-26T08:32:53","slug":"arrays-in-f","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/","title":{"rendered":"Arrays in F#"},"content":{"rendered":"<p>Yesterday I wrote about list in F#. Today I&#8217;ll write about arrays, which unlike lists are a mutable flat storage and cannot be resized. That means you have to create a new array if you want to remove or add elements. Advantages include constant look-up time and the fact that they can store a large amount of data.<\/p>\n<p>You can create a literal array in a similar way with the lists, placing the elements between [| |]:<\/p>\n<pre class=\"prettyprint\">\r\nlet data1 = [|1;2;3;4|]\r\nprintfn \"data1: %a\" output_any data1\r\n<\/pre>\n<pre class=\"console\">\r\ndata1: [|1; 2; 3; 4|]\r\n<\/pre>\n<p>The empty literal array is [||].<\/p>\n<p>To create an array you can either use Array.create or Array.init. They both create and initialize an array, but the second makes a lambda expression, which allows advance initialization possibilities. The following creates an array with 10 elements initialized to 1:\n<\/p>\n<pre class=\"prettyprint\">\r\nlet data2 = Array.create 10 1\r\nprintfn \"data2: %a\" output_any data2\r\n<\/pre>\n<p>Here is the output:<\/p>\n<pre class=\"console\">\r\ndata2: [|1; 1; 1; 1; 1; 1; 1; 1; 1; 1|]\r\n<\/pre>\n<p>The same can be achieved using Array.init:<\/p>\n<pre class=\"prettyprint\">\r\nlet data3 = Array.init 10 (fun x -> 1)\r\nprintfn \"data3: %a\" output_any data3\r\n<\/pre>\n<pre class=\"console\">\r\ndata3: [|1; 1; 1; 1; 1; 1; 1; 1; 1; 1|]\r\n<\/pre>\n<p>But we can use Array.init to initialize the elements from 1 to N for instance:<\/p>\n<pre class=\"prettyprint\">\r\nlet data4 = Array.init 10 (fun x -> x+1)\r\nprintfn \"data4: %a\" output_any data4\r\n<\/pre>\n<pre class=\"console\">\r\ndata4: [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|]\r\n<\/pre>\n<p>The arrays are mutable data structures. Elements are accessed with .[] or .(). The following code shows how to set the elements of an array:<\/p>\n<pre class=\"prettyprint\">\r\nlet data5 = Array.create 10 0\r\nfor i = 0 to (Array.length data5)-1 do\r\n   data5.[i] <- i+1\r\n\r\nprintfn \"data5: %a\" output_any data5\r\n<\/pre>\n<pre class=\"console\">\r\ndata5: [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|]\r\n<\/pre>\n<p>You can iterate over the elements of an array with Array.iter and Array.iteri, the second also providing access to the index of the elements.<\/p>\n<pre class=\"prettyprint\">\r\ndata4 |> Array.iter (fun x -> printf \"%d \" x)\r\nprintfn \"\"\r\n   \r\ndata4 |> Array.iteri (fun i x -> printfn \"data4(%d) = %d\" i x)\r\n<\/pre>\n<pre class=\"console\">\r\n1 2 3 4 5 6 7 8 9 10\r\ndata4(0) = 1\r\ndata4(1) = 2\r\ndata4(2) = 3\r\ndata4(3) = 4\r\ndata4(4) = 5\r\ndata4(5) = 6\r\ndata4(6) = 7\r\ndata4(7) = 8\r\ndata4(8) = 9\r\ndata4(9) = 10\r\n<\/pre>\n<p>Retrieving the length of the array can either be done with Array.length arr or with arr.Length.<\/p>\n<pre class=\"prettyprint\">\r\nfor i = 0 to data4.Length-1 do\r\n   printfn \"data4(%d) = %d\" i data4.(i)\r\n<\/pre>\n<pre class=\"console\">\r\ndata4(0) = 1\r\ndata4(1) = 2\r\ndata4(2) = 3\r\ndata4(3) = 4\r\ndata4(4) = 5\r\ndata4(5) = 6\r\ndata4(6) = 7\r\ndata4(7) = 8\r\ndata4(8) = 9\r\ndata4(9) = 10\r\n<\/pre>\n<p>Like the lists, arrays provide mapping that creates a new array by applying a function on all the elements of an array (with Array.map) or two arrays (with Array.map2).<\/p>\n<pre class=\"prettyprint\">\r\nlet data6 = data4 |> Array.map (fun x -> x*2)\r\nprintfn \"data6: %a\" output_any data6\r\n   \r\nlet data7 = Array.map2 (fun x y -> x+y) data4 data6\r\nprintfn \"data7: %a\" output_any data7\r\n<\/pre>\n<pre class=\"console\">\r\ndata6: [|2; 4; 6; 8; 10; 12; 14; 16; 18; 20|]\r\ndata7: [|3; 6; 9; 12; 15; 18; 21; 24; 27; 30|]\r\n<\/pre>\n<p>A copy of an array can be done with Array.copy.<\/p>\n<pre class=\"prettyprint\">\r\nlet data7 = Array.copy data6\r\nprintfn \"data7: %a\" output_any data7\r\n<\/pre>\n<pre class=\"console\">\r\ndata7: [|2; 4; 6; 8; 10; 12; 14; 16; 18; 20|]\r\n<\/pre>\n<p>Appending elements to an array is also possible with Array.append, but the result is a new array, created by concatenating two arrays.<\/p>\n<pre class=\"prettyprint\">\r\nlet data8 = Array.append data7 [|100|]\r\nprintfn \"data8: %a\" output_any data8\r\n<\/pre>\n<pre class=\"console\">\r\ndata8: [|2; 4; 6; 8; 10; 12; 14; 16; 18; 20; 100|]\r\n<\/pre>\n<p>The last operation of arrays I'm going to mention here is the folding, which allows applying a function to all the elements of an array, threading an accumulator argument in the process. The following example shows how to compute the sum of the elements of an array.\n<\/p>\n<pre class=\"prettyprint\">\r\nlet data9 = [|1;2;3;4|]\r\nlet sum1 = (Array.fold_left (fun acc x-> x + acc) 0 data9)\r\nlet sum2 = (Array.fold_right (fun acc x-> x + acc) data9 0)\r\nprintfn \"sum1 = %d\" sum1\r\nprintfn \"sum2 = %d\" sum2\r\n<\/pre>\n<pre class=\"console\">\r\nsum1 = 10\r\nsum2 = 10\r\n<\/pre>\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday I wrote about list in F#. Today I&#8217;ll write about arrays, which unlike lists are a mutable flat storage and cannot be resized. That means you have to create a new array if you want to remove or add elements. Advantages include constant look-up time and the fact that they can store a large &#8230; <a title=\"Arrays in F#\" class=\"read-more\" href=\"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/\" aria-label=\"Read more about Arrays in F#\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[37,38],"tags":[],"class_list":["post-109","post","type-post","status-publish","format-standard","hentry","category-fsharp","category-tutorials"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Arrays in F#\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2008-03-26T08:31:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2008-03-26T08:32:53+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Arrays in F#\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#article\",\"name\":\"Arrays in F#\",\"headline\":\"Arrays in F#\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"datePublished\":\"2008-03-26T03:31:31+02:00\",\"dateModified\":\"2008-03-26T03:32:53+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":8,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#webpage\"},\"articleSection\":\"F#, Tutorials\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"position\":2,\"name\":\"IT\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"position\":3,\"name\":\"Software\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/#listItem\",\"name\":\".NET\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/#listItem\",\"position\":4,\"name\":\".NET\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/fsharp\\\/#listItem\",\"name\":\"F#\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/fsharp\\\/#listItem\",\"position\":5,\"name\":\"F#\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/fsharp\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#listItem\",\"name\":\"Arrays in F#\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/#listItem\",\"name\":\".NET\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#listItem\",\"position\":6,\"name\":\"Arrays in F#\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/net\\\/fsharp\\\/#listItem\",\"name\":\"F#\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/\",\"name\":\"Arrays in F#\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2008\\\/03\\\/26\\\/arrays-in-f\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2008-03-26T03:31:31+02:00\",\"dateModified\":\"2008-03-26T03:32:53+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Arrays in F#","description":"","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#article","name":"Arrays in F#","headline":"Arrays in F#","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"datePublished":"2008-03-26T03:31:31+02:00","dateModified":"2008-03-26T03:32:53+02:00","inLanguage":"en-US","commentCount":8,"mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#webpage"},"articleSection":"F#, Tutorials"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","position":2,"name":"IT","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","position":3,"name":"Software","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/#listItem","name":".NET"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/#listItem","position":4,"name":".NET","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/fsharp\/#listItem","name":"F#"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/fsharp\/#listItem","position":5,"name":"F#","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/fsharp\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#listItem","name":"Arrays in F#"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/#listItem","name":".NET"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#listItem","position":6,"name":"Arrays in F#","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/fsharp\/#listItem","name":"F#"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/","name":"Arrays in F#","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"datePublished":"2008-03-26T03:31:31+02:00","dateModified":"2008-03-26T03:32:53+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"Arrays in F#","og:url":"https:\/\/mariusbancila.ro\/blog\/2008\/03\/26\/arrays-in-f\/","article:published_time":"2008-03-26T08:31:31+00:00","article:modified_time":"2008-03-26T08:32:53+00:00","twitter:card":"summary","twitter:title":"Arrays in F#"},"aioseo_meta_data":{"post_id":"109","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-18 21:13:02","updated":"2025-12-12 07:18:10","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":null,"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":8,"uagb_excerpt":"Yesterday I wrote about list in F#. Today I&#8217;ll write about arrays, which unlike lists are a mutable flat storage and cannot be resized. That means you have to create a new array if you want to remove or add elements. Advantages include constant look-up time and the fact that they can store a large&hellip;","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/net\/fsharp\/\" class=\"advgb-post-tax-term\">F#<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/articles_and_tutorials\/tutorials\/\" class=\"advgb-post-tax-term\">Tutorials<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">F#<\/span>","<span class=\"advgb-post-tax-term\">Tutorials<\/span>"]}},"comment_count":"8","relative_dates":{"created":"Posted 19 years ago","modified":"Updated 19 years ago"},"absolute_dates":{"created":"Posted on March 26, 2008","modified":"Updated on March 26, 2008"},"absolute_dates_time":{"created":"Posted on March 26, 2008 3:31 am","modified":"Updated on March 26, 2008 3:32 am"},"featured_img_caption":"","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-1L","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":0,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/109\/revisions"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}