У меня есть функция f[d_]
. Мое намерение - применить эту функцию к списку в целом. Скажите, d={1,2,3,...}
, затем f[d]
дает мне результат (число или что-то еще). До сих пор все ясно.Mathematica: Применение функции к списку списка
Теперь давайте говорить у меня есть следующий список списков: p={l1,l2,l3,...}
Есть более эффективный способ, чем карты, чтобы вычислить f[p]
, где ожидаемый результат {f[l1],f[l2],f[l3],...}
?
Например, с помощью функции Sin[x]
, сопоставление ее по списку происходит медленнее, чем просто поместить список внутри аргумента. Это, похоже, не работает с моей функцией f[d]
и списком списков p. Что я должен сделать, чтобы сделать эту работу? Будет ли это быстрее, чем Карта?
Чтобы сделать себя яснее, скажем
f[d_]:=Total[d]
Then, f[{a1,a2,a3}] gives me a1+a2+a3, as expected.
But, f[{{a1, a2, a3}, {b1, b2, b3}, {c1, c2, c3, c4}}] kills the machine.
Спасибо!
Требуется ли Вам что-то вроде 'Total [{{a1, a2, a3}, {b1, b2, b3}, {c1, c2, c3, c4}}, {2}] '? – tomd
попробуйте использовать атрибут listable: 'SetAttribbutes [f, Listable]' – agentp