LINUX.ORG.RU

История изменений

Исправление 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