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

  • 相关阅读:
    ORACLE SQL性能优化系列 (十一)
    ORACLE SQL性能优化系列 (七)
    ORACLE SQL性能优化系列 (十三)
    Oracle绑定变量
    ORACLE SQL性能优化系列 (九)
    C#中&与&&的区别
    简单代码生成器原理剖析
    C#线程系列讲座(1):BeginInvoke和EndInvoke方法
    ClearCanvas DICOM 开发系列 一
    C# winform 获取当前路径
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10456724.html
Copyright © 2011-2022 走看看