【发布时间】:2011-10-04 05:00:50
【问题描述】:
我想调用 Scalaz 的 pure 方法将值放入 State monad。以下作品:
type IntState[A] = State[Int, A]
val a = "a".pure[IntState]
a(1)
(Int, java.lang.String) = (1,a)
我还可以消除类型别名(感谢 Scalaz 的 Pure.scala):
val a = "a".pure[({type T[A]=State[Int,A]})#T]
a(1)
(Int, java.lang.String) = (1,a)
但这非常笨拙。有没有更短的方法来合成这样的类型?就像函数文字的占位符语法一样,有没有类似的东西:
"a".pure[State[Int, *]]
【问题讨论】:
-
我不认为 Scala 有这样的语法糖,因为 michid cited partial type application 作为类型投影实用程序的一个例子。