类型构造器-Functor[F[_]]

类型构造是抽象类型或高阶类型实例化的过程;

类型构造器是任意输入一个或几个已有类型,能够生成新类型的类型;

 

https://www.cnblogs.com/feng9exe/p/9925027.html

 

Type constructors

Essentially what HKT gives us is the ability to generalize across type constructors – where a type constructor is anything that has a type parameter. For instance List[_]* is not a type, the underscore is a hole into which another type may be plugged, constructing a complete type. List[String] and List[Int] being examples of complete (or distinct) types.

 

https://www.cnblogs.com/feng9exe/p/9156277.html

 

 

a type constructor is a feature of a typed formal language that builds new types from old ones.

 

https://en.wikipedia.org/wiki/Type_constructor

 

trait Functor[F[_]] {

 def map[A, B](a: F[A])(f: A => B): F[B]

}

 

class Functor f where

  fmap :: (a -> b) -> f a -> f b

由 f a 和 f b 我们可知,f 不是类型,而是类型构造器(type constructor),即 f 应接受另一类型作为参数并返回一个具体的类型(更精准的表达则是 f 的 kind 必须是 * -> *)。

 

 

函数作为参数或作为返回值的函数称为 高阶函数。在Scala的immutable.List.的方法中存在大量的高阶函数,我们看看其中一个map方法

class List[+A] ... {

  def map[B](f: A => B) : List[B]

}

 

https://my.oschina.net/Barudisshu/blog/472564

 

转载于:https://www.cnblogs.com/feng9exe/p/10456724.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值