问题标签 [kind-projector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1579 浏览

scala - 什么是投影仪

我一直在深入研究 FP 和它周围的一切,我发现在某处写有实物投影仪的概念,没有细节也没有解释。

我唯一找到的是这个github 项目,我开始思考它是指这个特定的项目,还是指 FP 中的一些通用概念?

那么,什么是实物投影仪?为什么有用?(如果可能,您能否提供示例、资源等?)

0 投票
2 回答
630 浏览

scala - Scala中具有两个参数的类型构造函数的函子实例

我有一个Foo有两个参数的类,我正在尝试为 Foo 编写一个 Functor 实例,其中第一个参数是固定的,如下所示:

但是上面的代码编译失败,产生如下错误:

我知道 Scalaz 对他们的\/类型做了类似的事情,但是检查他们的源代码会发现一个奇怪的?,它不能为我编译:

Scalaz 是如何?工作的,我该如何编写 Functor 实例Foo

0 投票
1 回答
454 浏览

scala - 问号是什么意思?

我有以下代码功能:

并想知道,问号是什么意思?它来自图书馆https://github.com/non/kind-projector

0 投票
2 回答
677 浏览

scala - 种类编译器插件 λ 未找到

我已经启用了 kind 编译器插件addCompilerPlugin("org.spire-math" % "kind-projector" % "0.9.6"),我现在可以使用?符号,例如Map[String, ?],但是 Lambda 和 λ 没有解析。

val f: Id ~> Future = λ[Id ~> Future](...)

产生Error: not found: value λ. kind 编译器仍然支持 λ 吗?

0 投票
1 回答
80 浏览

scala - 在 scalaz 中将函数提升到 ~>

我有以下类型和声明:

Container ~> Id有可能升到FreeContainer ~> Id吗?

0 投票
0 回答
71 浏览

scala - 类型 lambdas 中断隐式解析

有人可以解释这种行为并提供解决方法吗?Scala 2.12.7, kind-projector 0.9.8, scalacOptions += "-Ypartial-unification"

0 投票
0 回答
194 浏览

scala - 如何在 Bazel 中定义 scala 编译器插件?

目前,我将 rules_scala 与 sbt-bazel 结合使用来尝试从 sbt 转换为 bazel。

我目前遇到了在构建期间未使用“kind-projector”插件的问题。

IE。compilerPlugin("org.spire-math" % "kind-projector" % "0.9.8")

有没有人有在 Bazel 中使用 scalac 插件的经验?

0 投票
1 回答
304 浏览

scala - 带有种类投影仪的 Scala 中的部分应用类型 lambda

考虑以下类型定义:

当在上下文边界中提供这种类型的隐式要求时(使用 kind 投影仪插件),我们必须这样写:

我想去掉这?[_]部分,所以我最初的猜测是写一个To[G[_]]返回的类型,LiftF[?[_], G]以便将上面的函数定义转换为

但是,当将类型To定义写为

我收到以下编译错误:

尝试用存在类型重写它会产生以下类型定义:

这编译得很好,但不出所料,不能应用于其他类型参数,因此无法实现所需的函数定义。

我设法用受 aux 模式启发的代码实现了“部分应用程序”部分:

可悲的是,这给我留下了可以说比原始语法更糟糕的语法:

我的问题是 - 我可以在实物投影仪的帮助下在 Scala 中实现最初提出的语法,还是应该坚持使用?[_]

0 投票
1 回答
96 浏览

scala - Why does Option[Try[_]] not conform to F[_]?

So having something like this:

I now want to do something like this:

(Same thing if I declare the trait extension as class TryOptWrapper extends IntWrapper[Try[Option[_]]])

Now, perhaps the most interestingly, this works:

Now, is it possible to do the same thing – i.e. implement a trait with a type parameter being a nested parametrized type – without having to explicitly declare the type alias? It definitely feels like I'm missing some syntax here.

0 投票
1 回答
62 浏览

scala - 测试中*的含义是什么?

在猫的测试中,*作为类型参数出现,例如,这里:

(见https://github.com/typelevel/cats/blob/master/tests/src/test/scala/cats/tests/NestedSuite.scala#L19

我知道编译器会将其转换为类型级别的函数,但为什么呢?它在哪里定义?它是语言规范的一部分还是猫的一部分(或它的依赖项之一)?