История изменений
Исправление zinfandel, (текущая версия) :
На хаскелле без лишних сравнений, лаконично, читаемо, расширяемо
main = getName >>= branching
branching myLongNameOfVariable
| Just f <- dispatch myLongNameOfVariable = forAllNonDefault >> f
| otherwise = forDefault
dispatch 'a' = forA
dispatch 'b' = forB
dispatch 'c' = forC
dispatch 'd' = forD
dispatch 'e' = forE
dispatch 'f' = forF
dispatch _ = fail "No function dispatched"
Исходная версия zinfandel, :
На хаскелле без лишних сравнений, лаконично, читаемо, расширяемо
main = getName >>= branching
branching myLongNameOfVariable
| Just f <- dispatch myLongNameOfVariable = forAllNonDefault >> f
| otherwise = forDefault
dispatch 'a' = Just forA
dispatch 'b' = Just forB
dispatch 'c' = Just forC
dispatch 'd' = Just forD
dispatch 'e' = Just forE
dispatch 'f' = Just forF
dispatch _ = Nothing