seguito, ovviamente, funziona, ma non mi piace per avvolgere oggetti in Tuple,argomenti della funzione Guava
ImmutableMap<String, Function<Tuple2<Double>, Double>> op = new //
ImmutableMap.Builder<String, Function<Tuple2<Double>, Double>>()
.put("+", new Function<Tuple2<Double>, Double>() {
@Override public Double apply(Tuple2<Double> data) {
return data.Val_1 + data.Val_2;
}
}).build();
System.out.println(op.get("+").apply(new Tuple2<Double>(3d, 4d)));
voglio scrivere qualcosa di simile:
ImmutableMap<String, Function<Double[], Double>> op = new //
ImmutableMap.Builder<String, Function<Double[], Double>>()
.put("+", new Function<Double[], Double>() {
@Override
public Double apply(Double... data) {
return data[0] + data[1];
}
}).build();
System.out.println(op.get("+").apply(3d, 4d));
aiuto sarebbe più utile, Ty.
Edit: Problema risolto, iniziato ad usare:
public interface T2Function<T> {
T apply(T Val_1, T Val_2);
}
Si potrebbe fare ciò restituendo un altro 'Funzione' dal proprio' Function.apply', e quindi applicandolo al secondo argomento. 'Function.apply (a) .Applicare (b)'. La funzione "inner" userebbe 'a' direttamente e riceveva' b' come parametro. Questo potrebbe essere esteso per i parametri 'n'. Ciò simulerebbe il trattamento delle funzioni di Haskell, ma non sono sicuro di cosa ne trarrai in Javaland. – jpaugh