Comap
更多信息和选项
- Comap 通常用来将函数列表中的每个函数应用于单个公共参数. »
- Comap 采用标准层级规范:
-
n 层 1 至 n Infinity 层 1 至 Infinity {n} 仅层 n {n1,n2} 层 n1 至 n2 - Comap 中 levelspec 的默认值为 {1}.
- 正层 n 由 n 个索引指定的 fs 的所有部分组成.
- 负层 -n 由深度为 n 的 fs 的所有部分组成.
- 层 –1 由数字、符号和其他没有子部分的对象组成.
- 层 0 对应于整个表达式.
- 通过选项设置 Heads->True,Comap 包括表达式的标头及其部分. »
- Comap 总是有效地构造一个完整的新表达式,然后对其求值. »
- Comap[fs,x,…] 中 fs 的标头不必是 List.
- 如果 fs 是 Association 对象,Comap[fs,x] 将关联中的值应用于 x. »
- Comap[fs][x] 等价于 Comap[fs,x].
- Parallelize[Comap[fs,x]] 在所有子内核上并行计算 Comap[fs,x]. »
范例
打开所有单元 关闭所有单元基本范例 (4)
Comap[{f, g, h}, x]使用 Comap 的运算符形式:
Comap[{Sin, Cos, Tan}][Pi / 3]Comap[{{Sin, Cos, Tan}, {Csc, Sec, Cot}}, Pi / 3, {2}]Comap[<|"a" -> f, "b" -> g, "c" -> h|>, x]范围 (6)
Comap[{1 + f[#]&, 2 + g[#]&, 3 + h[#]&}, x]Comap[{x |-> x ^ 2, x |-> x ^ 3}, 2]Comap 可用于具有任何标头的表达式:
Comap[a + b + c + d, x]Comap[f ^ a + g ^ b, x, {2}]映射在嵌套 Association 的第二层上:
Comap[<|"a" -> <|"x" -> f|>, "b" -> <|"y" -> g|>|>, x, {2}]Comap[{Gamma, {Exp, Log}, {{Sin, ArcSin}, {Cos, ArcCos}}}, 0, {-1}]Comap[f[f[f[f[f[f]]]]], x, {2, -3}]Comap[h0[h1[h2[h3[h4[h5]]]]], x, {2, -3}]选项 (1)
应用 (3)
属性和关系 (9)
Comap 将表达式的一部分包裹在另一个表达式周围:
Comap[{f, g, h}, x]Map 将表达式包裹在另一个表达式的部分周围:
Map[f, {x, y, z}]Query[{Mean, Median, StandardDeviation}][{6, 2, 3, 4, 4, 4, 0}]Comap[{Mean, Median, StandardDeviation}][{6, 2, 3, 4, 4, 4, 0}]Query[assoc] 也等价于 Comap[assoc]:
Comap[<|"a" -> f, "b" -> g, "c" -> h|>][x]Comap[<|"a" -> f, "b" -> g, "c" -> h|>][x]Through[p[f,g,…][x]] 等价于 Comap[p[f,g,…],x]:
Through[{f, g, h}[x]]Comap[{f, g, h}, x]将此与 Comap 的运算符形式进行比较:
Comap[{f, g, h}][x]即使 p[f,g,…][x] 具有值,也可以使用 Comap[p[f,g,…],x]:
Comap[<|"a" -> f, "b" -> g|>, x]当 p[f,g,…][x] 具有值时,不能使用 Through:
<|"a" -> f, "b" -> g|>[x]Through[<|"a" -> f, "b" -> g|>[x]]当 fi 无属性时,Comap[{f1,f2,…},x] 等价于 Map[f|->f[x],{f1,f2,…}]:
Comap[{f, g, h}, x]Map[e |-> e[x], {f, g, h}]Comap 可以将保持表达式内的部分应用到表达式而不允许继续求值:
Comap[Hold[Length, Total], {a, b, c}]使用 ReleaseHold 允许运算继续进行:
ReleaseHold[{%}]SetAttributes[h, HoldRest]Comap[h[Length, Total], {a, b, c}]使用 Unevaluated 将函数列表应用于表达式,而不先对其求值:
Comap[{Hold, HoldComplete}, Unevaluated[2 3 4]]Comap[{Hold, HoldComplete}, 2 3 4]使用 Unevaluated 将表达式映射到表达式的各个部分,而不先对其求值:
Comap[Unevaluated[f g f], x]Comap[f g f, x]Comap 可以自动并行运行:
Parallelize[Comap[{f, g, h}, x]]可能存在的问题 (1)
默认情况下 Comap 从层 1 开始,因此不会将整个表达式应用于表达式:
Comap[f[g[h]], x, -1]Comap[f[g[h]], x, {0, -1}]技术笔记
文本
Wolfram Research (2024),Comap,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Comap.html.
CMS
Wolfram 语言. 2024. "Comap." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Comap.html.
APA
Wolfram 语言. (2024). Comap. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Comap.html 年
BibTeX
@misc{reference.wolfram_2026_comap, author="Wolfram Research", title="{Comap}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/Comap.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_comap, organization={Wolfram Research}, title={Comap}, year={2024}, url={https://reference.wolfram.com/language/ref/Comap.html}, note=[Accessed: 13-September-2026]}