F# Convert String, Int, Array and Seq

Use Int32.TryParse with a ref parameter to safely parse a string. Convert a string to an Int.
Convert. A string has a value like "100." With a parsing method, we can convert that to an Int. This is a more efficient representation of the data.
For simple conversions, a cast like downcast or upcast is sufficient. For parsing a string, we use Int32.TryParse. For arrays, Seq.asArray and toArray are helpful.
Convert string to int. To convert a number in a string into an int, we use the Int32.TryParse. Other types like Int64 also have equivalent parsing methods.

Mutable: We must declare a "parsed value" storage location. We decorate this value (result) with the mutable keyword so it can be changed.

Int32.TryParse: The first argument is the string. The second one is the storage variable for the parsed value—we pass it as a reference.

Return: When TryParse returns true, we enter the if-block. In this case the parse was successful and the result was assigned.

F# program that uses Int32.TryParse open System // This string contains an Int32. let test = "100" // Stores the parsed value from TryParse. let mutable result = 0 // If TryParse succeeds, value is stored in result. if Int32.TryParse(test, &result) then // Print the parsed value. printfn "%A" result Output 100
Seq.ofArray, toArray. A Seq is powerful: we can use many methods on it, like "where" or "map." With Seq.ofArray we treat an array as a sequence.Seq

Here: We use the Seq.where method on an array (which is being treated as a sequence).

Result: We remove elements that do not start with "C" and convert the result back into a string array with Seq.toArray.

F# program that uses Seq.ofArray, toArray // This is a string array. let candies = [|"chocolate"; "sugar"; "cookie"|] // Use Seq.ofArray to convert to a seq. // ... Use Seq.toArray to convert seq to a string array. let firstLetterC = Seq.ofArray candies |> Seq.where (fun x -> x.StartsWith("c")) |> Seq.toArray printfn "%A" firstLetterC Output [|"chocolate"; "cookie"|]
Option to int. In F# many methods return an option. We can convert the option to a value by testing it with IsSome. If an inner value exists, we then access it with Value.Option
F# program that converts option let numbers = [10; 20; 30] // The tryFind method returns an option containing an int. let result = List.tryFind (fun x -> x >= 15) numbers // See if the option has a value. if result.IsSome then // Convert the option into an Int. let number = result.Value printfn "%d" number Output 20
Bool to int. Sometimes we have a bool and want to convert it to an int—usually 1 for true and 0 for false. An inline if-expression can be used to do this.If, elif
F# program that converts bool to 1 or 0 let code = true // Convert bool to 1 or 0. let number = if code then 1 else 0 printfn "%A" code printfn "%A" number Output true 1
With conversions, we change types of our data so that is it more useful. Ints are more effective when dealing with numeric data than strings containing digits.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
Dot Net Perls