Гораздо проще и удобнее решать такие задачи, используя индексированные переменные, а не генерировать список различных Symbol
с.Таким образом:
listOfRules = Array[f@# :> list[[#]] &, {100}];
Short@%
=> {f[1]:>list[[1]],f[2]:>list[[2]],f[3]:>list[[3]],f[4]:>list[[4]],
<<92>>,f[97]:>list[[97]],f[98]:>list[[98]],f[99]:>list[[99]],f[100]:>list[[100]]}
Если вы планируете выполнять такую замену много раз, стоит Dispatch
большой список правил:
listOfRules = Dispatch@listOfRules;
Замена может быть сделана какобычно:
expr /. listOfRules