我最近在这里回答了一个问题:How do I express this in Typescript?
以上是上述代码片段:
trait FooBar[M[_]] {
val foo: M[Integer]
val bar: M[String]
}
type Identity[X] = X
type A = FooBar[Identity]
type B = FooBar[Option]
我见过几次:
type Identity[X] = X
但是,在类别理论文献中,这个名称(一般是Identity
类型还是这种技术)是什么? Lift
是一个更好的名字吗?
答案 0 :(得分:1)
在数学中,这被称为Identity Function:
在数学中,身份函数(也称为身份关系或身份映射或身份转换)是一个始终返回用作其参数的相同值的函数。在等式中,函数由f(x)= x。
给出
更正式的数学定义如下:
正式地,如果
M
是一个集合,则f
上的标识函数M
被定义为具有域和codomainM
的函数,其满足:{{1}对于M中的所有元素x,。 换句话说,该函数为M的每个元素x分配M的元素x。
如果您专门研究类别理论定义,则称为Identity Morphism。维基百科价值谈论态射构成,然后将身份态射描述为:
身份:对于每个对象X,都存在一个态射id X :X→X称为身份