[Libguestfs] [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.

Pino Toscano ptoscano at redhat.com
Fri Jul 8 08:50:05 UTC 2016


On Friday 08 July 2016 09:40:12 Richard W.M. Jones wrote:
> On Fri, Jul 08, 2016 at 09:10:51AM +0100, Richard W.M. Jones wrote:
> > On Thu, Jul 07, 2016 at 06:08:43PM +0100, Richard W.M. Jones wrote:
> > > On Thu, Jul 07, 2016 at 07:00:46PM +0200, Pino Toscano wrote:
> > > > On Thursday 07 July 2016 17:30:03 Richard W.M. Jones wrote:
> > > > > This adds imperative list manipulation functions inspired by Perl.
> > > > > The functions are passed list refs which get updated in place.
> > > > > 
> > > > > This allows us to replace some awkward pure functional code like:
> > > > > 
> > > > >   let xs = ys in
> > > > >   let xs = if foo then xs @ zs else xs in
> > > > > 
> > > > > with:
> > > > > 
> > > > >   let xs = ref ys in
> > > > >   if foo then append xs zs;
> > > > > ---
> > > > 
> > > > TBH I've always found the "shift" and "unshift" naming of Perl
> > > > functions slightly awkward, but can live with them. (At least the
> > > > new functions do the same as Perl ones.)
> > > 
> > > I agree, but for consistency I thought it was better to keep those
> > > names rather than trying to think up new ones which would be different
> > > from everything else.
> > 
> > Actually I forgot that C++ (STL vector, deque etc) have functions
> > called push_front, pop_front, push_back, pop_back.  Don't know if that
> > would be better.  Is it obvious what front and back mean?

IMHO yes, more than "unshift" (unshift from what, for example?).

> That would be the attached patch.

LGTM -- note also the current solution is fine for me, as long as we
are using a naming already in the wild and not anything homebrew.

Thanks,
-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20160708/33ae28eb/attachment.sig>


More information about the Libguestfs mailing list