История изменений
Исправление Miguel, (текущая версия) :
В хаскелле для такого надо фактически все с нуля переписывать через какую-то монаду.
Не надо, хаскель достаточно гибок. В данном случае можно, например, так:
func args = subfunc3 <$> b where
b = subfunc2 <$> a
a =
do let a' = subfunc1 args
when (someCondition a') $ Logger.warning "Some shit happened"
return a'
func args =
let a = subfunc1 args
b = subfunc2 a
in subfunc3 b
func args =
do let a = subfunc1 args
when (someCondition a) $ Logger.warning "Some shit happened"
let b = subfunc2 a
return $ subfunc3 b
Исходная версия Miguel, :
В хаскелле для такого надо фактически все с нуля переписывать через какую-то монаду.
Не надо, хаскель достаточно гибок. В данном случае можно, например, так:
func args = subfunc3 <$> b where
b = subfunc2 <$> a
a =
do let a' = subfunc1 args
when (someCondition a') $ Logger.warning "Some shit happened"
return a'
func args =
let a = subfunc1 args
b = subfunc2 a
in subfunc3 b
func args =
do let a = subfunc1 args
when (someCondition a) $ Logger.warning "Some shit happened"
let b = subfunc2 a
return $ subfunc3 b