groups.google.com/group/comp.soft-sys.math.mathematica/...

оложим, у меня есть функция с необязательными именованными аргументами, но я настаиваю на обращении к аргументам по их неукрашенным именам.

Рассмотрим эту функцию, которая добавляет два именованных аргумента, a и b:

Options[f] = {a->0, b->0};  (* The default values. *)
f[OptionsPattern[]] := 
  OptionValue[a] + OptionValue[b]

Как я могу написать версию этой функции, где эта последняя строка заменяется простоa+b? (Представь что тоa+b это целый набор кода.)

Ответы на следующий вопрос показывают, как сокращатьOptionValue (легче сказать, чем сделать), но не как вообще от него избавиться:Необязательные именованные аргументы в Mathematica

Philosophical Addendum: Кажется, что Mathematica собирается иметь эту магию сOptionsPattern а такжеOptionValue с тем же успехом он может пройти весь путь и иметь языковую конструкцию для правильного выполнения именованных аргументов, где вы можете просто ссылаться на них, вы знаете, по их именам. Как и любой другой язык с именованными аргументами. (А пока мне любопытно, какие обходные пути возможны ...)

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

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