Bill Allombert on Fri, 12 Oct 2007 00:44:45 +0200

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Functions as first-class objects

On Thu, Oct 11, 2007 at 01:45:48PM -0700, John Jones wrote:
> Hi,
> I may be doing something stupid, but I couldn't successfully apply the 
> patch (I tried against 2.3.2 and against cvs and parts were rejected in 
> both cases).

It probably applied to the CVS version at the time I made it... or
not. Well I have just released a tarball there:
that also include the F2x patch. That should help.

> But, this is a feature I wished gp had so I am glad to see it might be 
> incorporated.  Hopefully "map(function, vector)" and "select(vector, 
> function)" can then become standard gp functions.

And if not, you will be able to implement them in GP!

? map(f,v)=vector(#v,i,f(v[i]))
%1 = (f,v)->vector(#v,i,f(v[i]))
? map(x->x^2,[1,2,3,4])
%2 = [1, 4, 9, 16]

Note that we can finally define Church numerals in GP:

one =f->f
two =f->x->f(f(x))
inc= n->f->x->f((n(f))(x))
add= (n,m)->f->x->(n(f))((m(f))(x))
mul= (n,m)->f->n(m(f))
pow= (n,m)->m(n)