zoukankan      html  css  js  c++  java
  • 类型构造器-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

  • 相关阅读:
    《学习之道》第十章方法空间能力是可以后天形成的
    《学习之道》第十章总结
    《学习之道》第十章视觉和空间记忆的原因
    数据结构之链表:双指针问题
    单例模式
    Java的锁
    Python锁
    排序算法小结
    命中索引
    反射
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10456724.html
Copyright © 2011-2022 走看看