Pino Toscano
2016-Jul-07 17:00 UTC
Re: [Libguestfs] [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.
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.) -- Pino Toscano
Richard W.M. Jones
2016-Jul-07 17:08 UTC
Re: [Libguestfs] [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.
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. 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
Richard W.M. Jones
2016-Jul-08 08:10 UTC
Re: [Libguestfs] [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.
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? Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
Reasonably Related Threads
- Re: [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.
- Re: [PATCH v3 4/8] mllib: Add some imperative list manipulation functions.
- [PATCH v3 0/2] common/mlstdutils: Extend the List module.
- [PATCH 0/3] common/mlstdutils: Add Std_utils List and Option modules.
- [[PATCH v2 0/4] common/mlstdutils: Add Std_utils List and Option modules.