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

Richard W.M. Jones rjones at redhat.com
Tue Jan 31 12:24:09 UTC 2017


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.

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




More information about the Libguestfs mailing list