[Libguestfs] [PATCH v6 2/3] mllib: modify nsplit to take optional noempty and count arguments

Tomáš Golembiovský tgolembi at redhat.com
Fri Feb 3 01:29:12 UTC 2017


On Tue, 31 Jan 2017 12:24:09 +0000
"Richard W.M. Jones" <rjones at redhat.com> wrote:

> On Tue, Jan 31, 2017 at 01:17:12PM +0100, Tomáš Golembiovský wrote:
> > On Tue, 31 Jan 2017 11:35:01 +0000
> > "Richard W.M. Jones" <rjones at redhat.com> wrote:
> >   
> > > On Mon, Jan 30, 2017 at 10:43:15PM +0100, Tomáš Golembiovský wrote:  
> > > > Added two new optional arguments to nsplit:
> > > > 
> > > > * keep_empty: if set to false empty elements are not stored in the
> > > >   returned list. The default is to keep the empty elements    
> > > 
> > > The ?keep_empty flag is pointless.  It's simpler and more
> > > clear to write:
> > > 
> > >   List.filter ((<>) "") (nsplit ...)
> > > 
> > > when you don't want empty elements.  
> > 
> > That's not entirely true when keep_empty is used in combination with
> > count. When keep_empty is false then the split is not considered a
> > (successful) split and internal state of count is not decreased.
> > 
> > Example:
> > 
> > # List.filter ((<>) "") (nsplit  ~count:3 "," "a,,,b,,,c,,d" ) ;;
> >   - : string list = ["a"; "b,,,c,,d"]
> > 
> > # nsplit ~keep_empty:false ~count:3 "," "a,,,b,,,c,,d" ;;
> >   - : string list = ["a"; "b"; "c"; ",d"]  
> 
> IMHO that shows how ?keep_empty is a very complex interface that's
> difficult for ordinary programmers to understand.

After discussion on IRC the changes to nsplit have been dropped.

> 
> Rich.
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> Fedora Windows cross-compiler. Compile Windows programs, test, and
> build Windows installers. Over 100 libraries supported.
> http://fedoraproject.org/wiki/MinGW


-- 
Tomáš Golembiovský <tgolembi at redhat.com>




More information about the Libguestfs mailing list