) в Mathematica, один из которых демонстрирует приведенный выше фрагмент кода.

, у меня есть списокRules

rules = {a -> b, c -> d};

который я использую на протяжении всей записной книжки. Тогда в какой-то момент имеет смысл захотеть применить правилапрежде чем любые другие оценки имеют место в выражении, Обычно, если вы хотите что-то подобное, вы бы использовали

In[2]:= With[{a=b,c=d}, expr[a,b,c,d]]
Out[2]= expr[b, b, d, d]

Как я могу взятьrules и вставить его в первый аргументWith?

редактировать

ОбеНекоторые решения терпят неудачу, делают все, что я искал - но я должен был подчеркнуть этот момент немного больше Смотрите смелую часть выше.

Например, давайте посмотрим на

rules = {a -> {1, 2}, c -> 1};

Если я использую эти vaules вWith, Я получил

In[10]:= With[{a={1,2},c=1}, Head/@{a,c}]
Out[10]= {List,Integer}

Некоторые версииWithRules Уступать

In[11]:= WithRules[rules, Head/@{a,c}]
Out[11]= {Symbol, Symbol}

(ФактическиЯ не заметил, что ответ Эндрю имел АтрибутHoldRest - так это работает так, как я хотел.)

Ответы на вопрос(1)

Ваш ответ на вопрос