Έχουν δημοσιευτεί
Παρασκευή, 17 Οκτωβρίου 2008 4:14 μμ
από το μέλος
PALLADIN
Σήμερα ήμουν λιγάκι "lazy" με ένα C# project, καθώς έπρεπε να πάρω κάποιες premature αποφάσεις. Σκέφτηκα ότι ένα lazy If θα βοηθούσε, και αμέσως στρώθηκα στην δουλειά.
Το αποτέλεσμα
public static class Lazy
{
public static Func<Func<TReturn>, Func<Func<TReturn>, Func<TReturn>>> If<TReturn>(Func<bool> conditionFunc)
{
return thenFunc => elseFunc => () =>
{
if (conditionFunc())
return thenFunc();
else
return elseFunc();
};
}
public static Func<Func<TValue, TReturn>, Func<Func<TValue, TReturn>, Func<TValue, TReturn>>> If<TValue, TReturn>(Func<TValue, bool> condition)
{
return thenFunc => elseFunc => value =>
{
if (condition(value))
return thenFunc(value);
else
return elseFunc(value);
};
}
}
τελικά το higher order style στην C#, μετά από ένα σημείο, αρχίζει να δείχνει τα όριά του