История изменений
Исправление quasimoto, (текущая версия) :
Ещё можно от прописывания параметров избавиться — в хаскеле есть такие Клейсли-стрелки, с комбинаторами для них получается так:
checkFile >=> parse >=> (findVarValue "a" >=> checkValue) >>> up
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ^ pure part
(функции могут работать в произвольных трансформерах — MaybeT если нужно просто протаскивать нейтральное значение как and, или что-то более сложное можно придумать, с накоплением отчёта об ошибках, например).
Так что (run (batch file-exists? parse-cfg (find-value 'varname) check-value) path). Но специфично, конечно.
Исходная версия quasimoto, :
Ещё можно от прописывания параметров избавиться — в хаскеле есть такие Клейсли-стрелки, с комбинаторами для них получается так:
checkFile >=> parse >=> (findVarValue "a" >=> checkValue) >>> up
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ^ pure part
(функции могут работать в произвольных трансформерах — MaybeT если нужно просто протаскивать нейтральное значение как and, или что-то более сложное можно придумать, с накоплением отчёта об ошибках, например).
Так что (run (batch file-exists? parse-cfg (find-value 'varname) check-value) path). Но специфично, конечно.