小编Pth*_*ame的帖子

约束平等

基本上,给定{-# LANGUAGE PolymorphicKinds, ConstraintKinds, TypeFamilies #-}(以及更多,如果需要),(~)类型级操作符是否适用于类型级表达式Constraint?我试着用谷歌搜索答案,但没有运气.

polymorphism haskell type-constraints

8
推荐指数
1
解决办法
236
查看次数

用户定义的值类从Java看起来是什么样的?

我想通过与Haskell的比较,我理解Scala 2.10的新"值类"特性newtype:

trait BoundedValue[+This] extends Any { this: This =>

  def upperBound: This

  def lowerBound: This

}

class Probability @throws(classOf[IllegalArgumentException]) (v: Double) extends AnyVal with BoundedValue[Probability] {

  val value: Double = if ((v >= 0.0) && (v <= 1.0)) v else throw new IllegalArgumentException((v.toString) + "is not within the range [0.0, 1.0]")

  override val upperBound: Probability = new Probability(0.0)

  override val lowerBound: Probability = new Probability(1.0)

  // Implement probability arithmetic here;
  // will be represented by Double at …
Run Code Online (Sandbox Code Playgroud)

java interop scala scala-java-interop newtype

8
推荐指数
1
解决办法
1868
查看次数

Scala标准相当于

是否有Scala(或Java,我猜)相当于标准?我不仅仅是在讨论基准测试库:请查看HTML结果的标准.

benchmarking haskell scala haskell-criterion

8
推荐指数
1
解决办法
296
查看次数

为什么在Haskell中显式推导Show/Read?

我们不能做read someValue :: someDataTypeshow someValue为每种类型,因为deriving (Show, Read)必须在data声明中写.是否有一个案例,除了错误,我们不希望我们的类型可序列化?为什么Show与Read分开?是否有一个案例,除了错误,我们只想显示一些数据而不读它?如果没有,为什么不使用单一数据类型Serializable

刚才,我正在使用Gloss库Key数据类型,它是派生Show而不是Read,我不明白.这很遗憾,因为我想将控件的配置放在一个文件中,然后读取它,这样玩家就可以更改控件并拥有自己的配置.我不得不为Key,SpecialKey和MouseButton做包装,这不是什么大问题但是没用.

data Key' = Char' Char | SpecialKey' SpecialKey | MouseButton' MouseButton
    deriving (Eq, Ord, Show, Read)
convertKey x = case x of
    Char' c -> Char c
    SpecialKey' sk -> SpecialKey sk
    MouseButton' mb -> MouseButton mb
Run Code Online (Sandbox Code Playgroud)

haskell derived-types

3
推荐指数
3
解决办法
1522
查看次数