An expression like this works by itself:
for i in 0..10 do
printf "%d" i
What makes it work when one of these values is substituted by a variable preluded by another complex expression such as a regular expression?
let str = File.ReadAllText "input.csv"
let result = Regex.Match(str, "\d+").ToString()
for i in 0..result do
printf "%d" i
The error I get when I attempt to execute your code is
for i in 0..result do
------------^^^^^^
stdin(14,13): error FS0001: This expression was expected to have type
'int'
but here has type
'string'
It’s pointing out that it can’t implicitly convert a string (result) to an int, but it has to be an int for that loop to work. You’ll need to parse or otherwise convert result to an int for it to compile.
1 Like
Perfect. Thanks NT. This worked for me:
let str = File.ReadAllText “input.csv”
let result = Regex.Match(str, “\d+”)
let Str2Int = Res.ToString() |> int
for i in 0…Str2Int do
printfn “%A” i
1 Like