With proper indenting it looks a lot better and doesn't need "end foreach"-like comments (if you ever feel you need comments that say what you're ending, fix your style instead!!).
Rule of thumb: always let the thing that causes the indentation be the last on a line. Another rule of thumb: align closing parens/brackets with the indentation of the line that caused indentation.
So don't use:
somefunction(
foo(bar,
"Hello World",
) // end of foo
); // end of somefunction
But instead use:
somefunction(
foo(
bar,
"Hello World",
)
);
You may or may not like it, but I find it much better readable.
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import perlforjava.control.Looper;
import perlforjava.functions.Arrays;
import perlforjava.functions.Mapper;
import perlforjava.lang.Block;
public class TheSchwartz {
public static void main(String[] args) {
// Create a new List of values to sort
ArrayList in = new ArrayList();
in.add("foobarbazquux");
in.add("foo");
in.add("foobarbaz");
in.add("foobar");
/* Sort based upon length of string by mapping each string to
a List where the first element is the string and the second
+ is
its length. Sort on the latter and return a new List of str
+ings. */
List out = Mapper.map(
new Block() {
// pull the first element from each List and return it
protected Object process(Object elem) {
return ((List)elem).get(0);
}
}, Arrays.sort(
// run the comparison of Integer values to determine o
+rder
new Comparator() {
public int compare(Object a, Object b) {
return ((Integer)((List)a).get(1)).
compareTo(((Integer)((List)b).get(1)));
}
},
// map each string into an ArrayList of string => leng
+th
Mapper.map(
new Block() {
protected Object process(Object elem) {
ArrayList temp = new ArrayList();
temp.add(elem);
temp.add(new Integer(((String)elem).length
+()));
return temp;
}
},
in
)
)
);
// Loop over the results to view them
Looper.foreach(
out,
new Block() {
protected Object process(Object elem) {
System.out.println("ELEM " + elem.toString());
return null;
}
}
);
}
}
But indeed, Perl is much nicer towards programmers anyway.
Juerd
# { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.