Ho un metodo C# che sembra un po 'come questo:Come posso rifattorizzare la clausola else richiesta?
bool Eval() {
// do some work
if (conditionA) {
// do some work
if (conditionB) {
// do some work
if (conditionC) {
// do some work
return true;
}
}
}
return false;
}
In F # questo finisce per guardare un bel po' più brutta a causa dei rami obbligatorie altro:
let eval() =
// do some work
if conditionA then
// do some work
if conditionB then
// do some work
if conditionC then
// do some work
true
else
false
else
false
else
false
Quale potrebbe essere un pulitore modo di scrivere questo in F #?
C'è sicuramente un modo più pulito di scrivere questo in C#. Inversa le tue condizioni e restituisci false. Non sono sicuro se aiuta a F # però. –
Wow: molte risposte positive su questa domanda. –
@Onorio - Non sono d'accordo; ci sono molte risposte "interessanti", ma secondo me, la maggior parte delle risposte aggiungono complessità e ho pensato che il nostro obiettivo come ingegneri del software fosse quello di ridurlo. – Brian