EntityFunction
EntityFunction[x,body]
是一个函数,有一个正式的参数 x,可被用在 EntityValue 及相关函数中.
EntityFunction[{x1,x2,…},body]
是有一系列正式参数的 EntityFunction.
更多信息
- EntityFunction[x, body] 就像一个 EntityProperty,可被直接用在 EntityValue 中.
- 在 EntityFunction[x,body] 中,x 通常一次绑定到一个 Entity. AggregatedEntityClass 的第二个参数是一个例外,因为正式参数将被绑定到每组 entities.
- 如果用作关系数据库支持的实体的 AggregatedEntityClass 的第二个参数,则支持以下聚合函数:
-
Min 最小值 Max 最大值 Length 数值的个数 Total 值的和 Mean 平均值 StandardDeviation 样本的标准偏差 Variance 样本的方差 - EntityFunction[{left,right},body] 可作为 CombinedEntityClass 的条件. 此处,left 将与 CombinedEntityClass 的第一个参数中的 Entity 绑定, right 将与第二个参数中的 Entity 绑定.
- 当处理在关系数据库支持的 EntityStore 中注册的实体时,只有以下形式可被编译为 SQL:
-
a+b 数字、日期和时间量之间的加法 a-b 数字或日期之间的差 a*b 数字之间的乘法 a/b 数字之比 a^b 数字间的幂运算 Quotient[a,b] 整数相除 Mod[a,b] 整数相除所得的余数 Sqrt[a] 平方根 Exp[a] 指数运算 Log,Log10,Log2 不同底数的对数运算 Abs[a] 绝对值 OddQ[a],EvenQ[a] 整数的奇偶性 ab,a>b,a≠b,… 数字、日期、字符串之间的比较 a&&b,ab,!a,… 布尔代数 If[a,b,c] if 语句 Which[…] which 语句 MissingQ[a] 检查元素是否缺失 Length[list]0 检查是否为空列表 OrderedQ[a,b] 检查字符串的字母排序 MemberQ[list,a] 检查元素是否在列表中,或一个实体是否属于该类别 StringJoin[a,b,…] 字符串连接 StringMatchQ[…],StringStartsQ[…],… 基本字符串匹配操作 Now,Today 获取当前日期 AllTrue,AnyTrue 列表的布尔运算 SelectFirst[list,Not@*MissingQ] 选择列表中的第一个非缺失值 BitNot,BitAnd,BitOr,BitShiftLeft,… 位运算 Sin,Cos,Tan,… 三角函数 ArcSin,ArcCos,ArcTan,… 反三角函数 Sinh,Cosh,Tanh,… 双曲函数 ArcSinh,ArcCosh,ArcTanh 反双曲函数 Round,Floor,Ceiling 舍入函数 Min,Max 最小值和最大值(外部聚合) StringTake,StringDrop 提取字符串的子部分(包括 UpTo) ToString[a] 将数字或日期转换为字符串 N[a] 将整数转换为实数 IntegerPart[a] 提取实数的整数部分 FromDigits[a] 将字符串转换为整数 Boole[a] 将布尔数转换为 0 或 1 Interpreter["StructuredDate"][a],Interpreter["StructuredTime"][a],Interpreter["StructuredDateTime"][a] 将字符串转换为日期或时间对象 UnixTime[a] 将带有时间的日期对象转换为数字 FromUnixTime[a] 将数字转换为带有时间的日期对象 JulianDate[a] 将日期对象转换为数字 FromJulianDate[a] 将数字转换为日期对象 DateValue[a,"SecondsFromMidnight"] 将时间对象转换为数字 DateValue[UnixTime[a],"TimeObject"] 将数字转换为时间对象 - 对于关系数据库支持的实体,相较于其在 Wolfram 语言中的功能,上述函数可能功能有限. 例如,SQL 缺乏对复数的支持;因此,数值函数的定义域仅限于实值区域. 通常无法进行符号运算. 精确跟踪语义能力也可能有所不同.
范例
打开所有单元关闭所有单元基本范例 (3)
EntityFunction 可直接应用于单个实体,如 EntityProperty:
将 EntityFunction 用作 FilteredEntityClass 的条件:
属性和关系 (6)
在 ExtendedEntityClass 中使用以添加新的算出的属性:
在 FilteredEntityClass 中用作限定符以选择特定实体:
在 SortedEntityClass 中用作排序标准:
在 AggregatedEntityClass 的第二个参数中用作聚集器:
在 AggregatedEntityClass 的第三个参数中用作分组标准:
在 CombinedEntityClass 中用作组合标准:
可能存在的问题 (1)
SQL 中的数学运算只支持实数;执行结果为复数的操作可能会导致 Missing 或运行时错误(runtime error),具体取决于后端:
SQL 不支持从属性或 EntityFunction 返回除标量之外的任何内容:
文本
Wolfram Research (2019),EntityFunction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/EntityFunction.html (更新于 2020 年).
CMS
Wolfram 语言. 2019. "EntityFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/EntityFunction.html.
APA
Wolfram 语言. (2019). EntityFunction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/EntityFunction.html 年