Рассмотрим следующую функцию я уже упоминал в моем previous question:«Частные» символы для суммы(), Diff(), или интегрировать()
rot[i](f) := sum(sum(sum(sum(
G[r,i]*G[q,j]*W[i,j,k]*('diff(f[k], y[q]) + sum(K[k,q,m]*f[m], m, 1, N)),
r, 1, N),
j, 1, N),
k, 1, N),
q, 1, N) $
Это вид работ в целом, но что если исходное выражение f
уже содержит символы r
, j
и т. д.? В этом случае это не так. Единственным решением, которое я нашел до сих пор, является использование некоторого уникального префикса для этих символов или, по крайней мере, начало их имен с символом подчеркивания: r
→ __r
, j
→ __j
. Но я надеюсь, что должно быть более идиоматическое решение. Есть что-нибудь?
Это печально. Я думаю, что сейчас буду придерживаться префиксов или подчеркиваний. – firegurafiku
Да, я думаю, что сейчас выбор необычных имен, чтобы избежать столкновений имен, является работоспособным решением. Хорошая новость заключается в том, что я считаю, что реализация лексических символов может быть не слишком большой, на самом деле, и я уверен, что очень немногим программам на самом деле требуется динамическая область для правильной работы, поэтому переход на лексическую сферу может быть не слишком сложным на практике. –