Optional parameters: Difference between revisions

Content added Content deleted
(Replace println() with print(); replace output "syntaxhighlight" tag with "pre" tag)
Line 875: Line 875:
=={{header|Ecstasy}}==
=={{header|Ecstasy}}==
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
module OptionalParameters
module OptionalParameters {
{
typedef Type<String >.Orderer as ColumnOrderer;
typedef Type<String >.Orderer as ColumnOrderer;
typedef Type<String[]>.Orderer as RowOrderer;
typedef Type<String[]>.Orderer as RowOrderer;
Line 884: Line 883:
Int column = 0,
Int column = 0,
Boolean reverse = False,
Boolean reverse = False,
)
) {
{
// provide a default orderer
// provide a default orderer
orderer ?:= (s1, s2) -> s1 <=> s2;
orderer ?:= (s1, s2) -> s1 <=> s2;
Line 898: Line 896:


return table.sorted(byColumn);
return table.sorted(byColumn);
}
}


void run()
void run() {
{
String[][] table =
String[][] table =
[
[
Line 913: Line 910:
show("by column 2", sort(table, column=2));
show("by column 2", sort(table, column=2));
show("by column 2 reversed", sort(table, column=2, reverse=True));
show("by column 2 reversed", sort(table, column=2, reverse=True));
}
}


void show(String title, String[][] table)
void show(String title, String[][] table) {
{
@Inject Console console;
@Inject Console console;
console.print($"{title}:");
console.print($"{title}:");
for (val row : table)
for (val row : table) {
{
console.print($" {row}");
console.print($" {row}");
}
console.print();
}
}
console.print();
}
}
}
</syntaxhighlight>
</syntaxhighlight>