Home > database >  F# I can't print char from string
F# I can't print char from string

Time:11-07

I tried this:

open System
let main() =
    let mutable str1 = "qwerty"
    printfn "%c" str1[0]
main()

got this:

error FS0597: Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized

I found this site: https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/strings and here it's working I don't know why. I found other sites, where everyone said about parentheses

open System
let main() =
    let mutable str1 = "qwerty"
    printfn "%c" (str1[0])
main()

and got this:

error FS0003: This value is not a function and cannot be applied

CodePudding user response:

If you want to print a single character from a string you actually need to put a dot in between the object and the squared brackets.

printfn "%c" str1.[0]

MSFT docs: Access elements

Here writes Microsoft: "You can access array elements by using a dot operator (.) and brackets ([ and ])." However, their example actually also does not include the dot. Nevertheless, in order to access array elements, you need to use the dot operator.

  • Related