
I am looking for the name of the property linking two functions f and g when : [f(a),f(b),f(c)] = g([a,b,c]) Is there a standard name? In practice, g is an optimised version of f when working on large amount of elements. Thank you

Emmanuel Castro
I am looking for the name of the property linking two functions f and g when : [f(a),f(b),f(c)] = g([a,b,c])
Is there a standard name?
g = map f ?
In practice, g is an optimised version of f when working on large amount of elements.
It's a list, and map is lazy; not too sure you can get anything more optimised than that for long lists. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On 14/06/2010 23:17, Ivan Lazar Miljenovic wrote:
Emmanuel Castro
writes: In practice, g is an optimised version of f when working on large amount of elements.
It's a list, and map is lazy; not too sure you can get anything more optimised than that for long lists.
It may be possible to share calculations between instances of f, for example. -- flippa@flippac.org

Philippa Cowderoy
On 14/06/2010 23:17, Ivan Lazar Miljenovic wrote:
Emmanuel Castro
writes: In practice, g is an optimised version of f when working on large amount of elements.
It's a list, and map is lazy; not too sure you can get anything more optimised than that for long lists.
It may be possible to share calculations between instances of f, for example.
So its optimised for duplicate inputs, as well as for large amounts of elements? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

Excerpts from Emmanuel Castro's message of Mon Jun 14 18:10:09 -0400 2010:
I am looking for the name of the property linking two functions f and g when : [f(a),f(b),f(c)] = g([a,b,c])
Is there a standard name?
In practice, g is an optimised version of f when working on large amount of elements.
This is akin to a technique that data-parallel haskell uses; they call it "chunking", but this is useful only when we were trying to evaluate elements of the list in parallel, and generally the transformation will be more like g([a,b,c]) ++ g([d,e,f]) etc. Cheers, Edward

* Emmanuel Castro
I am looking for the name of the property linking two functions f and g when : [f(a),f(b),f(c)] = g([a,b,c])
Is there a standard name?
In practice, g is an optimised version of f when working on large amount of elements.
Sometimes (particularly in Data Parallel Haskell, but also in other languages) 'g' is called "vectorized version" of 'f'. -- Roman I. Cheplyaka :: http://ro-che.info/ "Don't let school get in the way of your education." - Mark Twain

Emmanuel Castro wrote:
I am looking for the name of the property linking two functions f and g when : [f(a),f(b),f(c)] = g([a,b,c])
Is there a standard name?
Generally these sorts of things are called homomorphisms. It's a terribly general term, but that's the one I've always seen to describe that pattern. It's also a bit like distributivity, though that probably doesn't highlight what you're interested in focusing on. -- Live well, ~wren

On Jun 15, 2010, at 1:42 PM, wren ng thornton wrote:
Generally these sorts of things are called homomorphisms. It's a terribly general term, but that's the one I've always seen to describe that pattern.
g is a "list homomorphism", if you want to get specific. Equivalently, it is the "list functor induced by f". (A functor is a morphism between categories. Lists form a category, and g is a morphism from lists to lists, since it is a homomorphism). I guess you can call the homomorphism characterization "the list homomorphism induced by f"
participants (8)
-
Alexander Solla
-
Bulat Ziganshin
-
Edward Z. Yang
-
Emmanuel Castro
-
Ivan Lazar Miljenovic
-
Philippa Cowderoy
-
Roman Cheplyaka
-
wren ng thornton