From: shyouhei@ruby-lang.org
To: ruby-core@ruby-lang.org
Subject: [ruby-core:98724] [Ruby master Feature#16946] Add an `intersperse` method
Date: Thu, 11 Jun 2020 00:58:39 +0000 (UTC) [thread overview]
Message-ID: <redmine.journal-86080.20200611005839.7176@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-16946.20200610100008.7176@ruby-lang.org
Issue #16946 has been updated by shyouhei (Shyouhei Urabe).
Hello, this request sounds interesting to me.
sos4nt (Stefan Schüßler) wrote:
> Haskell has an `intersperse` function which adds a separator between elements of a list.
>
> It would be pretty useful to have such method(s) in Ruby, too.
This is the key point. Can you show us the "pretty useful"-ness a bit more, possibly by telling us how it is practically used in Haskell?
----------------------------------------
Feature #16946: Add an `intersperse` method
https://bugs.ruby-lang.org/issues/16946#change-86080
* Author: sos4nt (Stefan Schüßler)
* Status: Open
* Priority: Normal
----------------------------------------
Haskell has an `intersperse` function which adds a separator between elements of a list.
It would be pretty useful to have such method(s) in Ruby, too.
Examples for `Array` and `String`:
```ruby
[1, 2, 3].intersperse(0)
#=> [1, 0, 2, 0, 3]
'Hello'.intersperse('-')
#=> "H-e-l-l-o"
```
I'm aware that I can achieve the above with built-in methods, but it's quite cumbersome: (requiring regular expressions / intermediate arrays)
```ruby
[1, 2, 3].flat_map { |i| [i, 0] }[0...-1]
#=> [1, 0, 2, 0, 3]
'Hello'.gsub(/(?<=.)./, '-\0')
#=> "H-e-l-l-o"
'Hello'.chars.join('-')
#=> "H-e-l-l-o"
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>
next prev parent reply other threads:[~2020-06-11 1:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 10:00 [ruby-core:98705] [Ruby master Feature#16946] Add an `intersperse` method mail
2020-06-10 13:12 ` [ruby-core:98712] " shevegen
2020-06-11 0:58 ` shyouhei [this message]
2020-06-11 1:47 ` [ruby-core:98726] " nobu
2022-09-15 11:21 ` [ruby-core:109900] " Vegard (Vegard Itland)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.ruby-lang.org/en/community/mailing-lists/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=redmine.journal-86080.20200611005839.7176@ruby-lang.org \
--to=ruby-core@ruby-lang.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).