首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mathematica中#是什么意思?

在Mathematica中#是什么意思?
EN

Stack Overflow用户
提问于 2010-11-25 06:20:25
回答 3查看 22.2K关注 0票数 16

有没有人知道#在例如Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]中在Mathematica中是什么意思?

那么Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]到底是什么意思呢?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2010-11-25 06:37:25

如何在Mathematica中找出任何内置语法的含义:

  1. Copy expression
  2. Do TreeForm[粘贴表达式Slot树的各个部分以标识有问题的语法,在本例中Slot
    1. 输入"?Slot"
票数 10
EN

Stack Overflow用户

发布于 2011-09-23 02:44:46

Notation # (如上所述)用于在纯函数中表示“这里有一个变量”(对于传统开发人员来说是“闭包”)。它的末尾必须总是跟&

最好的例子是:f[x_]:=x+5。这会创建一个延迟集,每当将值作为函数参数传递到符号引用f中时,该值都会被赋予特定于本地上下文函数的名称x (如果有的话,不会影响x的全局定义)。然后将使用这个新变量/值对表达式x+5求值。上述过程需要初始化symbol f,创建局部变量x,并将expression x+5永久保存在内存中,除非您将其清除。

旁注: f=5f[x_]:=5都使用"Symbol“f。当使用方括号提取其值时,f可以被称为一个函数,并且f[x_]可以与f[x_,y_]和平共存,而不会相互覆盖。一个在发送一个参数时使用,另一个在发送两个参数时使用。

有时你只需要一个快速的函数,而不需要定义它并让它挂起。因此,(someValue + 5)变成了(#+5)&,其中&说“我是一个纯函数,可以处理您发送给我的任何东西”,而#说“我是发送给纯函数的参数(或参数列表)”。如果要发送多个参数,还可以使用#1#2#3等。

常用多参数纯函数示例:

假设mydata是一个列表列表,您需要按列表的中位数排序(例如,来自美国各个城市的房价数据):

代码语言:javascript
复制
Sort[ myData , Median[#1] > Median[#2]& ]

快速提示,如果您将一个函数应用于单个值,它可能看起来更整洁,并且使用更少的类型来使用@而不是[],这实际上意味着Prefix。不要与Map (/@)Apply(@@)混淆。然后,上面的命令变成:

代码语言:javascript
复制
Sort[ myData , Median@#1 > Median@#2 & ] 

您可以像这样链接@Reverse@Sort@DeleteDuplicates[...]

票数 7
EN

Stack Overflow用户

发布于 2010-11-25 06:24:45

#1表示pure function中的第一个参数。

如果你有多个参数#1#2#3...请参考第一个、第二个、第三个参数等。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4272067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档