From: duerst@... Date: 2016-09-10T02:58:36+00:00 Subject: [ruby-core:77238] [Ruby trunk Feature#12744][Feedback] Add str.reverse_each_char and str.reverse_chars Issue #12744 has been updated by Martin D��rst. Status changed from Open to Feedback What about using `str.reverse.chars` for `string.reverse_chars`? It allocates some memory, but compared to all the memory allocated for the individual characters, the memory for the overall reversed string is not a big deal. Also, it's O(N). What's the use case? It doesn't look like a very frequent operation needing a dedicated method if it can be done by method composition so easily. Similar for `str.reverse_each`, which you probably meant to be `str.reverse_each_line`, which should be something like `string.lines.reverse.each` ---------------------------------------- Feature #12744: Add str.reverse_each_char and str.reverse_chars https://bugs.ruby-lang.org/issues/12744#change-60462 * Author: Bouke van der Bijl * Status: Feedback * Priority: Normal * Assignee: ---------------------------------------- This patch adds `str.reverse_each` and `str.reverse_chars`. It's currently not really possible to iterate a Ruby string in reverse while guaranteeing that you're not accidentally introducing an O(N^2) bug, without encoding to a fixed-length encoding like UTF-32. This is because variable-length encodings like UTF-8 requiring iterating over the whole string if you want to address characters by index. The patch uses `rb_enc_left_char_head` to iterate over the string in reverse, so you can do so without allocating more memory. ---Files-------------------------------- add-reverse-string-iteration.patch (5.91 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: