ForAllType

ForAllType[x,type]

表示由 x 参数化的类型.

ForAllType[x,cond,type]

表示满足 cond 的类型.

ForAllType[{x1,x1,},cond,type]

表示具有多个参数的类型.

更多信息

  • ForAllType 不会自行运算,但可以在接受类型(包括 TypedFunctionDeclaration 等)的函数内部使用.
  • ForAllType 用于指定多态函数的类型.
  • cond 的可能形式包括:
  • Element[x,"absType"]断言 x 是抽象类型的成员
    TypeEvaluate[]运行任意函数
    Element[x,{ty1,ty2,}]断言 x 是给定类型之一
  • cond 可以采用 Element[xi,"absType"] 的形式,其中 "absType" 是一个抽象类型. »
  • cond 可以是 Element[xi,{ty1,ty2,}] 的形式,其中 tyi 是具体类型. »
  • TypeEvaluate 可以在 cond 下使用. »
  • cond 可以作为条件列表给出.

范例

打开所有单元关闭所有单元

基本范例  (1)

表示一个函数的类型,该函数接受类型为 t 的对象列表并返回一个类型为 t 的单个对象:

表示具有这种类型的多态函数的声明:

使用多态函数编译程序:

使用具有不同具体类型的多态函数编译另一个程序:

范围  (7)

表示一个函数的类型,它接受任何压缩数组并返回一个秩数更高的数组:

声明具有该类型的函数并在具体示例中调用该函数:

表示在其输出中具有多态性的函数的类型:

使用该类型编译函数:

表示只接受整数的函数的类型:

表示具有该类型的函数:

编译一个调用整数类型函数的程序:

当函数被赋予非整数类型时编译失败:

表示一个函数的类型,该函数只接受秩小于 3 的压缩数组:

表示具有该类型的函数:

编译一个程序,将该函数应用于秩为 2 的压缩数组:

当输入的压缩数组秩为 3 时编译失败:

声明中的约束条件可用于区分函数的不同版本.

下面是同一个函数的两个声明:一个用于 "Integers",一个用于 "UnsignedIntegers"

唯一匹配的约束条件是 "Integers"

在这里,两个限制条件都匹配,并且使用了最窄的声明("UnsignedMachineIntegers" 的声明):

CompilerInformation 可以帮助了解 "Integer64" 等类型如何与 "Integers" 等抽象类型协同工作.

约束条件也可以与备选列表一起给出.

此声明同时适用于 "Integer64""Real64"

该声明适用于 "Integer64"

该声明适用于 "Real64"

带有备选列表的约束条件可以使用带有变量的类型:

该声明适用于 "Integer64"

它也适用于 "PackedArray" 类型:

无需费力声明抽象类型就能给出声明是非常有用的. 即使不完全了解所使用的类型,这些声明也有助于给出它们的形状.

Wolfram Research (2022),ForAllType,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ForAllType.html.

文本

Wolfram Research (2022),ForAllType,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ForAllType.html.

CMS

Wolfram 语言. 2022. "ForAllType." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ForAllType.html.

APA

Wolfram 语言. (2022). ForAllType. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ForAllType.html 年

BibTeX

@misc{reference.wolfram_2024_foralltype, author="Wolfram Research", title="{ForAllType}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/ForAllType.html}", note=[Accessed: 18-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_foralltype, organization={Wolfram Research}, title={ForAllType}, year={2022}, url={https://reference.wolfram.com/language/ref/ForAllType.html}, note=[Accessed: 18-November-2024 ]}