小编Clo*_*tly的帖子

比较core.async和功能反应式编程(+ Rx)

在将Clojure的core.async与所谓的Reactive Extensions(Rx)和FRP进行比较时,我似乎有点困惑.他们似乎解决了类似的异步 - 长期问题,所以我想知道什么是主要差异,在什么情况下优先于另一个.有人可以解释一下吗?

编辑:为了鼓励更深入的答案,我想让问题更具体:

  1. Core.async允许我编写同步代码.但是据我所知,FRP只需要一级嵌套回调(处理逻辑的所有函数都作为参数传递给FRP API).这似乎两种方法都不需要回调金字塔.确实,在JS中我必须写function() {...}多次,但主要问题,嵌套回调,也在FRP中消失了.我做对了吗?

  2. " FRP通过控制流完善了信息的沟通"你能(某人)请给出更具体的解释吗?

  3. 我不能像通过频道那样绕过FRP的可观察端点吗?

总的来说,我理解历史上两种方法的来源,我在这两种方法中都尝试了很少的教程.然而,我似乎被差异的非显而易见性"瘫痪"了.是否有一些代码难以在其中一种中编写而使用另一种代码很容易?那架构原因是什么?

asynchronous clojure frp reactive-programming core.async

59
推荐指数
4
解决办法
7267
查看次数

Scala类型边界和Java通用互操作

我正在尝试包装rxjava的timeout 方法,以使其可用于scala.

与我尝试过的许多其他方法类似:

def timeout[U >: T](timeout: Duration, other: Observable[U]): Observable[U] = {
  val otherJava: rx.Observable[_ <: U] = other.asJavaObservable
  val thisJava:  rx.Observable[_ <: U] = this.asJavaObservable
  toScalaObservable[U](thisJava.timeout(timeout.length, timeout.unit, otherJava))
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Observable.scala:1631: error: overloaded method value timeout with alternatives:
($1: Long,x$2: java.util.concurrent.TimeUnit,x$3: rx.Scheduler)rx.Observable[_$85] <and>
($1: Long,x$2: java.util.concurrent.TimeUnit,x$3: rx.Observable[_ <: _$85])rx.Observable[_$85]
cannot be applied to (Long, scala.concurrent.duration.TimeUnit, rx.Observable[_$84])
  toScalaObservable[U](thisJava.timeout(timeout.length, timeout.unit, otherJava))
Run Code Online (Sandbox Code Playgroud)

原始的java方法:

public Observable<T> timeout(long timeout, TimeUnit timeUnit, Observable<? extends T> other) {
   return …
Run Code Online (Sandbox Code Playgroud)

scala

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

由于 IDF 的 maxDocs 不同而导致得分不佳

我有两个文件的字段title

  • 消息
  • 新网站

如果我搜索这个词new website新闻文档的分数比另一个高得多,这显然不是我想要的。我围绕它进行了解释并得到:

'hits': [{'_explanation': {'desc': 'product of:',
   'det': [{'desc': 'sum of:',
    'det': [{'desc': 'product of:',
     'det': [{'desc': 'sum of:',
      'det': [{'desc': 'weight(title:new in 0) [PerFieldSimilarity], result of:',
       'det': [{'desc': 'score(doc=0,freq=1.0), product of:',
        'det': [{'desc': 'queryWeight, product of:',
         'det': [{'desc': 'idf(docFreq=1, maxDocs=6)',
          'value': 2.0986123},
          {'desc': 'queryNorm',
           'value': 0.14544667}],
          'value': 0.3052362},
          {'desc': 'fieldWeight in 0, product of:',
           'det': [{'desc': 'tf(freq=1.0), with freq of:',
            'det': [{'desc': 'termFreq=1.0',
             'value': 1.0}],
            'value': 1.0},
            {'desc': …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

4
推荐指数
1
解决办法
407
查看次数

迭代嵌套映射的所有键

鉴于:

{:o {:i1 1
     :i2 {:ii1 4}}}
Run Code Online (Sandbox Code Playgroud)

我想从根作为向量以“绝对”形式迭代地图的键。所以我想:

{
 [:o :i1] 1
 [:o :i2 :ii1] 4
}
Run Code Online (Sandbox Code Playgroud)

作为结果。基本上只得到叶节点。

clojure

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

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

有哪些 proxy_pass 协议?

随着proxy_pass在nginx的我可以使用:

proxy_pass http://backend;
proxy_pass https://backend;
Run Code Online (Sandbox Code Playgroud)

问题是:我可以使用哪些协议?特别是我想在明文(h2c)上使用 HTTP-2。这可能吗?是否有我可以使用的协议列表proxy_pass

nginx

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