elm/core

[String] No way to access nth character of string

Opened this issue · 2 comments

Currently, it seems there is no method to get the nth character of a string in the standard library, I'm pretty sure the only way to do so is to first convert it into a list, then into an array, then to use Array.get:

get : Int -> String -> Maybe Char
get index string = string |> String.toList |> List.toArray |> Array.get index

Which takes linier time complexity for something which should be constant. Alternatively you could do String.slice index (index+1) string but that would return a string and not a char.

Is there a reason for the lack of this seemingly basic feature? Or am I missing an existing method, in which case maybe the documentation needs to be updated to make it clearer how to do this?

Thanks for reporting this! To set expectations:

  • Issues are reviewed in batches, so it can take some time to get a response.
  • Ask questions a community forum. You will get an answer quicker that way!
  • If you experience something similar, open a new issue. We like duplicates.

Finally, please be patient with the core team. They are trying their best with limited resources.