小编ayv*_*ngo的帖子

在sbt中将输入任务与动态任务相结合

我想做一个输入任务,继续用户输入并生成一堆子任务来运行.这是一个例子:

import sbt._
import Keys._
import Def.Initialize
import complete.DefaultParsers._

object TestBuild extends Build {
  val sampleInput = inputKey[Seq[String]]("sample dynamic input task")
  val sampleDynamic = taskKey[Seq[String]]("sample dynamic task")

  override lazy val settings = super.settings ++ Seq(
    sampleDynamic := Def.taskDyn {
      val sources = Seq("ab", "csd", "efda")
      sources.map(sampleTaskFor _).joinWith(_.join)
    }.value,
    sampleInput := Def.inputTaskDyn {
      val sources = spaceDelimited("<arg>").parsed
      sources.map(sampleTaskFor _).joinWith(_.join)
    }.value
  )

  private def sampleTaskFor(source : String) : Initialize[Task[String]] = Def.task {
    source + " : " + source
  }
}
Run Code Online (Sandbox Code Playgroud)

有两个样本.第一个工作并显示带有预定义输入的简单taskDyn.第二个是用户输入的动态任务,拒绝编译我无法解释的错误 …

scala sbt

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

使方法实际内联

我伪造了一个简单的例子来检查@inline注释行为:

import scala.annotation.tailrec

object InlineTest extends App {
  @inline
  private def corec(x : Int) : Int = rec(x - 1)

  @tailrec
  private def rec(x : Int) : Int =
    if (x < 3) x else {
      if (x % 3 == 0)
        corec(x-1)
      else
        rec(x-4)
    }

  @tailrec
  private def rec1(x : Int) : Int =
    if (x < 3) x else {
      if (x % 3 == 0) {
        val arg = x - 1
        rec1(arg - 1) …
Run Code Online (Sandbox Code Playgroud)

annotations scala inline

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

倒车镜头的名称是什么?

镜头是一个执行不可变记录修改的函数:它复制记录修改其内容的一部分.镜头是一个库,允许您组合镜头,以获得更复杂的修改.

我正在寻找定义反向抽象的正确术语.一些比较两个对象并返回它们之间差异的函数.这些功能也产生了一个系统.每个修改可以与细粒度描述"记录内的字段C内的字段B内的字段A"或者记录内的粗"字段C"同时表示.因此,您可以使用所需的准确度进行匹配修改.

我需要编写代码来比较记录并对其中的修改做出反应.我想避免重新发明轮子.我试图谷歌反向镜头,但淹没在不相关的输出.

language-agnostic lenses haskell-lens

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

单个正则表达式的多个组匹配

我正在使用python解析日志,需要从中快速获取一些值

这是简单的等效正则表达式和用法示例

pat = re.compile("(1(2[3456]+2)+1)*")
Run Code Online (Sandbox Code Playgroud)

它没有按预期工作,只有pat.match()返回最后一个匹配组.groups()

这类问题最简单的解决方案是什么?

更新(因为维基引擎说使用编辑而不是创建新帖子):

当然,我需要重复比赛.

to_match="1232112542254211232112322421"
Run Code Online (Sandbox Code Playgroud)

正则表达式需要递归地应用两次.我能忍受,但有什么选择吗?

python regex

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

正确终止scala中的akka​​ actor

我编写了启动actor的示例代码,杀死它并完成执行.

object PureAkka {
  def main(argv : Array[String]) = {
    val actorSystem : ActorSystem = ActorSystem("main")
    val actor : ActorRef = actorSystem.actorOf(Props( new Actor {
      override def receive = {
        case x => println(x)
      }
      override def preStart() = println("prestart")
      override def postStop() = println("poststop")
    } ) )
    Thread.sleep(15000)
    actor ! PoisonPill
  }
}
Run Code Online (Sandbox Code Playgroud)

此代码打印:

[info] prestart
[info] poststop
Run Code Online (Sandbox Code Playgroud)

但它拒绝停止,直到我用Ctrl-C杀死进程

应用程序等待什么?我怎样才能以正确的方式阻止它?

scala actor akka

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

当observablelist生成更新更改事件时?

我在不同条件下尝试了不同的集合,但我能够接收的所有更改都是置换,添加,删除和替换更改.

更新变化在什么条件下出现?什么基类,什么存储类以及生成此类事件所需的操作?

javafx observablecollection

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

FilteredList在更新时提供java.lang.ArrayIndexOutOfBoundsException

我创建了一个简单的应用程序来测试过滤列表及其相应源列表更改时的行为.我也想测试更新更改,所以我创建ObservableListObservableLists.它比创建具有可观察字段的其他类(如Person)更快更简单.

代码看起来如此:

    ListChangeListener<ObservableList<String>> changeNotifier = new ListChangeListener<ObservableList<String>>() {
        @Override
        public void onChanged(Change<? extends ObservableList<String>> c) {
            while (c.next()) {
                if (c.wasPermutated()) {
                    System.out.println("permutation");
                } else if (c.wasUpdated()) {
                    System.out.println("update");
                } else {
                    if (c.wasRemoved()) {
                        System.out.println("remove");
                    }
                    if (c.wasAdded()) {
                        System.out.println("add");
                    }
                    if (c.wasReplaced()) {
                        System.out.println("replace");
                    }
                }
            }
        }
    };
    Callback<ObservableList<String>, Observable[]> identityExtractor = new Callback<ObservableList<String>, Observable[]>() {
        @Override
        public Observable[] call(ObservableList<String> param) {
            return new Observable[]{param};
        }
    };
    Predicate<ObservableList<String>> nonEmptyFilter = new …
Run Code Online (Sandbox Code Playgroud)

java javafx observablecollection observable

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

是否有任何scala库将元组视为monad

是否有任何scala库使用monad语法丰富基本scala元组.类似于Writer monad的东西,但调整了与元组的使用.

我在找什么:

val pair = (2, "as")
pair >>= (a => point(a+1))
Run Code Online (Sandbox Code Playgroud)

应该等于(3, "as").以及

for (p <- pair) yield (p+1)
Run Code Online (Sandbox Code Playgroud)

monads scala tuples

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

是否使用时间轴进行正确安排

我发现了很多建议使用TimelineKeyFrame.onFinished在计划任务的JavaFX。但是AnimationTimer文档说,它的handle方法每秒被调用 60 次。

从文档中不清楚,但似乎在内部Timeline使用AnimationTimer。这是否意味着调度的时间线解决方案强加了 CPU 密集型轮询模式?如果这实际上是 JavaFX 的工作方式,那么推荐其他哪些调度方法?

javafx timer

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

获取 ObservableValue 的所有注册监听器

如何让所有听众获得一个可观察的值?我可以扩展类并覆盖addListenerremoveListener方法将它们存储在一个集合中。但是该集合应该已经以某种方式存储在可观察值中。我怎么能拿到那套?

javafx

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