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