То, что вы хотите, это сгиб. Foldl имеет подпись foldl :: (a -> b -> a) -> a -> [b] -> a
, поэтому в вашем случае вы хотите, чтобы a
было Csp
ч и b
было Var
, давая вам тип foldl :: (Csp -> Var -> Csp) -> Csp -> [Var] -> Csp
. Для первого аргумента вы просто передаете ему что-то вроде \csp var -> f csp var yourFixedInt
, где f
- ваша функция.
Если вы не знакомы с fold
s, для чего это применимо, для каждого var
в вашем списке Var
s, функции, которую вы передаете (в данном случае только ваша функция с * 1014) * аргумент исправлен) для Csp
аккумулятора и var
.
(Есть намного лучшие объяснения складок вокруг, но я решил включить хотя бы короткий комментарий)