小编jhe*_*dus的帖子

什么是"回调地狱"以及RX解决它的方式和原因?

有人可以给出一个明确的定义以及一个简单的例子来解释什么是不知道JavaScript和node.js的人的"回调地狱"?

何时(在什么样的设置中)出现"回调地狱问题"?

它为什么会发生?

"回调地狱"总是与异步计算有关吗?

或者也可以在单线程应用程序中发生"回调地狱"?

我参加了Coursera的Reactive课程,Erik Meijer在他的一个讲座中说RX解决了"回调地狱"的问题.我问在Coursera论坛上什么是"回调地狱",但我没有得到明确答案.

在一个简单的例子中解释"回调地狱"之后,你能否展示RX如何在这个简单的例子中解决"回调地狱问题"?

javascript callback reactive-programming language-lawyer rxjs

100
推荐指数
4
解决办法
6万
查看次数

是否可以在IntelliJ IDEA 13中使用多行todo?

如果有,怎么样?

如果没有,是否有解决方法来获得类似的功能?

编辑:

我的意思是这样的:

// TODO line1
// line2
// line3
Run Code Online (Sandbox Code Playgroud)

和line1,line2,line3属于同一个TODO以蓝色突出显示.

intellij-idea todo

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

最简单的非平凡monad变换器示例"dummies",IO + Maybe

有人可以提供一个超级简单(几行)monad变换器示例,这是非平凡的(即不使用Identity monad - 我理解).

例如,有人会如何创建一个执行IO并可以处理失败的monad(可能)?

什么是最简单的例子来证明这一点?

我已经浏览了一些monad变换器教程,他们似乎都使用State Monad或Parsers或者复杂的东西(对于newbee).我想看到一些比这简单的东西.我认为IO +也许会很简单,但我自己并不知道如何做到这一点.

我怎么能使用IO + Maybe monad堆栈?最重要的是什么?什么会在底部?为什么?

在什么样的用例中,人们想要使用IO + Maybe monad还是Maybe + IO monad?创造这样一个复合单子会有意义吗?如果是,何时以及为什么?

monads haskell monad-transformers

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

EventBus/PubSub vs(反应式扩展)RX关于单线程应用程序中的代码清晰度

目前,我正在使用带有Scala(和JavaFX)的EventBus/PubSub架构/模式来实现一个简单的笔记组织应用程序(有点像Evernote客户端,带有一些添加的思维导图功能),我不得不说我真的很喜欢EventBus观察者模式.

以下是一些EventBus库:

https://code.google.com/p/guava-libraries/wiki/EventBusExplained

http://eventbus.org(目前似乎已经失效)这是我在实施中使用的那个.

http://greenrobot.github.io/EventBus/

以下是EventBus库的比较:http://codeblock.engio.net/37/

EventBus与发布 - 订阅模式相关.

但是!

最近,我参加了CourseraReactive课程并开始怀疑使用RXJava而不是EventBus是否会在单线程应用程序中简化事件处理代码?

我想问一下关于使用这两种技术(某种eventbus库谁编程的人的经验某种形式的反应扩展(RX)):是很容易解决的事件处理使用RX复杂性比与事件总线架构给出没有必要使用多个线程

我问这个,因为我已经在听到无功讲座CourseraRX(即没有"回调地狱")导致更清洁的代码比使用观察者模式,但是我没有找到VS EventBus架构之间的任何比较RXJava.所以很明显,EventBus和RXJava都比观察者模式更好,但 在代码清晰度和可维护性方面,它在单线程应用程序更好

如果我理解正确的话,RXJava的主要卖点是,如果存在阻塞操作(例如,等待来自服务器的响应),它可用于生成响应式应用程序.

但我根本不关心异步性,我所关心的只是在单线程应用程序中保持代码清洁,解开并易于推理.

在这种情况下,使用RXJava比使用EventBus更好吗?

我认为EventBus将是一个更简单,更清晰的解决方案,我认为没有任何理由可以将RXJava用于单线程应用程序,而采用简单的EventBus架构.

但我可能错了!

如果我错了,请纠正我,并解释为什么RXJava在单线程应用程序中没有执行阻塞操作的情况下比简单的EventBus更好.

event-handling reactive-programming system.reactive event-bus rx-java

37
推荐指数
2
解决办法
1万
查看次数

什么是FlexibleContexts扩展适合?你能用一个简单的例子解释一下吗?

我试图通过搜索网页来了解FlexibleContexts扩展正在做什么,这些网页可以解释为凡人(例如,像我一样读过LYHFGG的人),但我没有找到任何这样的资源.

因此,我向专家们询问这个话题:有人可以解释一下这个扩展的作用,它为什么存在,并给出一两个简单的例子,说明如何以及为什么要使用它?

此外,如果我读别人的代码,其使用这个扩展名,那我怎么知道,以了解使用此扩展编写的代码扩展?

haskell ghc

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

Scala:隐式传递一个隐式参数,另一个显式传递.可能吗?

让我们考虑一下这个功能:

def foo(implicit a:Int, b:String) = println(a,b).

现在,让我们假设有一个隐含的StringInt(implicit val i1=1)的范围,但我们想传递一个其他的,没有隐含的Int(val i2=2明确的)来foo.

我们怎么做?可能吗?谢谢阅读.

scala implicit

28
推荐指数
3
解决办法
1万
查看次数

为什么Scala没有为每个monad定义返回/单位函数(与Haskell相比)?

在Scala中设计决策背后的原因是,monads没有返回/单位函数,而Haskell每个monad都有一个返回函数,它将值放入给定monad的标准monadic上下文中?

例如,为什么List,Option,Set等...没有在标准库中定义的返回/单位函数,如下面的幻灯片所示?

我问这个是因为在反应性课程中,Martin Odersky明确地提到了这个事实,如幻灯片中可以看到的那样,但是没有解释为什么Scala没有它们,即使单位/回归是monad的基本属性.

在此输入图像描述 在此输入图像描述 在此输入图像描述

monads haskell scala

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

Haskell中什么都没有?

我在"为了好大学而学习你的哈斯克尔"一书的第118页.

它写在那里:

ghci> :t Nothing 
Nothing :: Maybe a
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

如果我理解正确,Nothing是一个值,只有具体类型可以有值,但Maybe a不是具体类型.那怎么能有价值Nothing呢?

书中还说:

请注意,Nothing的类型可能是a.它的类型是多态的.

多态类型是什么意思?我该怎么理解这个?这与仅具体类型可以具有价值的规则不矛盾吗?

编辑:

从本书的PDF版本:

我们说如果一个类型根本不采用任何类型参数(如Int或Bool),或者如果它采用类型参数并且它们都被填满(如Maybe Char),那么它是具体的.如果你有一些价值,它的类型总是具体的类型.

haskell types

24
推荐指数
2
解决办法
5711
查看次数

ConstraintKinds在一个超级简单的例子中解释

什么是约束类型

为什么有人会使用它(在实践中)?

到底有什么好处呢?

您能举一个简单的代码示例来说明前两个问题的答案吗?

例如,为什么在代码中使用它?

haskell ghc type-kinds constraint-kinds

22
推荐指数
2
解决办法
2977
查看次数

什么是隐式对象?

我正在阅读有关提到隐式对象的类型类:

object Math {
  trait NumberLike[T] {
    def plus(x: T, y: T): T
    def divide(x: T, y: Int): T
    def minus(x: T, y: T): T
  }
  object NumberLike {
    implicit object NumberLikeDouble extends NumberLike[Double] {
      def plus(x: Double, y: Double): Double = x + y
      def divide(x: Double, y: Int): Double = x / y
      def minus(x: Double, y: Double): Double = x - y
    }
    implicit object NumberLikeInt extends NumberLike[Int] {
      def plus(x: Int, y: Int): Int …
Run Code Online (Sandbox Code Playgroud)

scala implicit

20
推荐指数
1
解决办法
5343
查看次数