Почему Mathematica использует подчеркивание при определении параметров?
например, если бы я определял следующую функцию
exprod[n_] := Expand[Product[x + i, {i, 1, n}]]
тогда почему подчеркивание после переменной n, необходимо в определении функции? Откуда берется этот стиль или он специфичен только для языка программирования Mathematica?
1 ответов
подчеркивание происходит от сопоставления шаблонов.
x_ соответствует чему-либо, и это что-либо связано с именем x в теле функции.
l[x_ * y_] := l[x] + l[y];
затем в l[2*z] сначала выражение 2*z сопоставляется с шаблон x_ не * не . Тогда x привязано к 2, а y - к z. Затем вычисляется выражение l[x] + l[y], и результат становится l[2]+l[z].
теперь скажем, что мы хотим определить значение l на e равным 1. Пишем ли мы l[e]: = 1 или l[e_]: = 1 ?
говорят, что L (буквально) переменная e должна быть 1. Другой говорит, что l чему-то дает 1.
http://reference.wolfram.com/mathematica/tutorial/Introduction-Patterns.html