You mean, as long as the programmer magically knows how to evaluate that? :)
On Thu, Jan 6, 2011 at 7:33 AM, Ricky Clarkson <[email protected]> wrote: > The advantage of going via a call to 'map' instead of an explicit loop > would be that the map call could be one that magically knows whether > it's worth parallelising. > > On Thu, Jan 6, 2011 at 12:28 PM, Carl Jokl <[email protected]> wrote: >> It still looks like it may not be possible yet in core Java without >> using google collections or another external library. I suppose the >> desire to be able to do this kind of things would be a driver for >> wanting to add closure to Java. >> >> I get the principle that what I am really doing is mapping one value >> to another value (Remembering Haskell from University) and that order >> does not really matter. >> >> If it were an array of 8 values and a machine had 8 cores then >> potentially the entire operation could be done together. The theory is >> fair enough but I wonder about the overhead of breaking up something >> like this over multiple threads and whether for more trivial >> operations, the overhead of splitting up the computation and doing it >> in parallel might outweigh the time savings of being able to do >> parallel batches. I imagine there is some kind of threshold where the >> parallel processing benefit is greater than the overhead. It may be a >> lower threshold than I realise. >> >> On Jan 6, 12:14 pm, Ricky Clarkson <[email protected]> wrote: >>> I think you're looking for map. >>> >>> import fj.F; >>> import fj.data.Array; >>> >>> Integer[] legs = Array(animals).map(new F<Animal, Integer>() { >>> public Integer f(Animal animal) { >>> return animal.legs; >>> } >>> >>> }).array(Integer.class); >>> >>> fj = Functional Java. >>> >>> >>> >>> On Thu, Jan 6, 2011 at 11:47 AM, Carl Jokl <[email protected]> wrote: >>> > One item which I have heard mention recently is that the for loop >>> > syntax is potentially harmful to teach because the for loop with an >>> > index is inherently only processable with a single thread vs the >>> > foreach loop which can potentially use parallel processing. >>> >>> > I use mostly foreach loops but there is one situation in Java where I >>> > seem stuck with using the indexed version. This may be a shortcoming >>> > in Java because the order in which iteration is done does not matter. >>> >>> > The situation is when doing operations which involve copying or >>> > deriving values from one array to another array. The foreach loop in >>> > Java is fine for taking values out of an array but I don't think as >>> > far as I have been able to find out >>> > that these loops can be used for receiving values. In this case the >>> > for loop with the index is used to get an element out of an array at a >>> > given index and the derived value is stored in the destination array >>> > at the same index. >>> >>> > For example: >>> >>> > Type[] types = Type.values(); >>> > char[] mnemonics = char[types.length]; >>> > for (int index = 0; index < mnemonics.length; index++) { >>> > mnemonics[index] = types[index].getMnemonic(); >>> > } >>> >>> > I come across this situation a fair amount but don't think it can be >>> > done in foreach style in Java though I think some kind of closure in >>> > other languages would allow the source to be mapped to the destination >>> > as I understand it. >>> >>> > -- >>> > You received this message because you are subscribed to the Google Groups >>> > "The Java Posse" group. >>> > To post to this group, send email to [email protected]. >>> > To unsubscribe from this group, send email to >>> > [email protected]. >>> > For more options, visit this group >>> > athttp://groups.google.com/group/javaposse?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "The Java Posse" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/javaposse?hl=en. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- Joseph B. Ottinger http://enigmastation.com -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
