小编mkU*_*tra的帖子

如何停止GHCi中的无限评估?

当我运行类似:

Prelude> cycle "ab"
Run Code Online (Sandbox Code Playgroud)

我可以看到“ ab”的无限印刷。要停止它,我只需使用Ctrl+即可c。而且有效。

当我跑步时:

Prelude Data.List> nub $ cycle "ab"
Run Code Online (Sandbox Code Playgroud)

我无法阻止它。

题:

  • 为什么会这样呢?
  • 如何停止此操作?

更新:

 Ubuntu: version 18.10  
 GHCi:   version 8.2.2
Run Code Online (Sandbox Code Playgroud)

haskell ghci

15
推荐指数
1
解决办法
390
查看次数

如何弃用 Protocol Buffers 中的整个消息?

根据文档

弃用(字段选项):如果设置为 true,则表示该字段已弃用,不应由新代码使用。

使用示例:

message Foo {
 string old_field = 1 [deprecated=true];
}
Run Code Online (Sandbox Code Playgroud)
  • 我们如何弃用整个消息?

serialization deprecated protocol-buffers deprecation-warning grpc

9
推荐指数
1
解决办法
5090
查看次数

Free Monoid和Monoid之间的主要区别是什么?

看起来我非常清楚地了解MonoidHaskell中的内容,但上次我听说过一个叫做免费幺半群的东西.

什么是自由幺半群?它与幺半群有什么关系?

你能在Haskell中提供一个例子吗?

haskell functional-programming category-theory monoids

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

线程安全和线程兼容有什么区别?

线程安全和线程兼容有什么区别?

  • 线程兼容是什么意思?
  • 线程兼容的用例是什么?

UPD: 我在StreamObserver 的 grpc 文档中找到了这个定义。

另外,我找到了特性化线程安全的链接,但对我来说仍然不清楚。

如果一个方法需要在同步块中,那意味着它只是线程不安全的?

java concurrency multithreading thread-safety grpc

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

Haskell中“ undefined”的类型签名是什么意思?

我是Haskell的初学者,而undefined函数的类型签名使我大吃一惊。

我期待更简单的东西,但是我在Hackage上发现了这一点:

undefined :: forall (r :: RuntimeRep). forall (a :: TYPE r). HasCallStack => a
Run Code Online (Sandbox Code Playgroud)

错误的特殊情况。期望编译器将识别出这种情况并插入更适合undefined出现上下文的错误消息。

您能解释一下这个签名是什么意思吗?

谢谢!

haskell types undefined forall type-signature

7
推荐指数
2
解决办法
330
查看次数

结构细化中的结果类型可能不引用用户定义的值类

当我将包装器定义为值类(扩展AnyVal)时:

class Wrapper(val string: String) extends AnyVal

def wrapperHolder(w: Wrapper): {def wrapper: Wrapper} = new {
  def wrapper: Wrapper = w
}
Run Code Online (Sandbox Code Playgroud)

我对于wrapperHolder有以下编译错误:

Error:(5, 22) Result type in structural refinement may not refer to a user-defined value class
def wrapper: Wrapper = w
Run Code Online (Sandbox Code Playgroud)
  • 为什么它不适用于价值类?

scala compiler-errors compilation structural-typing value-class

6
推荐指数
1
解决办法
260
查看次数

什么是在Haskell中使用的Representable?

我想了解Representable在Haskell 中代表什么.定义

Haskell类型的可表示的endofunctors与读者monad同构,因此可以免费继承大量的属性.

对我来说不够清楚.我想看看一个真实的例子,了解我如何使用tabulateindex方法.

所以,我的问题是:

  • 什么是Representable用于?
  • 你能澄清一下这个定义并提供一个例子吗?

haskell functor category-theory

6
推荐指数
1
解决办法
417
查看次数

为什么在 Haskell 中,Nothing == (pure Nothing) 返回 False?

似乎我理解错了,但我尝试了以下操作:

GHCi, version 8.6.5
Nothing == Nothing
=> True
Nothing == (pure Nothing)
=> False
pure Nothing
=> Nothing
Run Code Online (Sandbox Code Playgroud)

你能解释一下这里发生了什么吗?

haskell

6
推荐指数
1
解决办法
174
查看次数

Haskell支持哪些多态类型?

阅读Wikipedia对多态的定义,我想到一个问题:

Haskell支持哪些多态类型,哪些不支持?

看起来Wikipedia并未包含对某些多态类型的描述,例如Levity Polymorphism,这对我来说是新的,在Haskell中受支持。

我想知道是否有扩展的Haskell多态性列表,并附带示例进行深入研究。

看起来主要是两个:

  • 参数多态性
  • 临时多态性

polymorphism haskell types

5
推荐指数
1
解决办法
381
查看次数

在'case of'块中,绑定如何掩盖现有的绑定?

我不得不从提取用户名和电子邮件EitherAuthResponse

我使用case of它的构造:

  let (uname, uemail) =
        case getUserResponseJSON creds of
          Right (GoogleUserResponse uname uemail) -> (uname, uemail)
          _ -> ("", "")    
Run Code Online (Sandbox Code Playgroud)

但我对uname和都有此警告uemail

    This binding for ‘uname’ shadows the existing binding
      bound at src/Foundation.hs:240:12
    |
242 |               Right (GoogleUserResponse uname uemail) -> (uname, uemail)
    |  
Run Code Online (Sandbox Code Playgroud)

我希望这let (uname, uemail)超出了范围case of

case如果unameuemail尚未定义,如何从块中获得此警告?

haskell scope let shadowing letrec

5
推荐指数
2
解决办法
88
查看次数