小编zig*_*tar的帖子

应对包含tikz中低于基线的文本的节点

我对Tikz/Latex有以下问题:

我有一些包含文本的节点.大多数文本没有低于基线的字母.但对于发生这种情况的节点,节点高度和文本/基线的比率和位置是关闭的.看看示例图像.

在此输入图像描述

我知道的解决方案:

  • 使节点的最小高度更大.这导致节点的大小相同,但基线仍处于不同的高度
  • 使用struts.这导致所有节点的布局类似于包含违规文本的节点.对于大多数节点,这会导致文本基线与周围框之间的空间过大

latex tikz

10
推荐指数
1
解决办法
1645
查看次数

输出Iterable.sliding作为元组

在集合上滑动的方法返回给定大小的滑动窗口,其形式为X[Iterable[A]]X是集合的类型,A是元素类型.我经常需要两三个元素,我更喜欢将它们命名.一个丑陋的解决方法sliding(2)是:

points.sliding(2).foreach{ twoPoints =>
      val (p1,p2) = (twoPoints.head,twoPoints.last)
      //do something
}
Run Code Online (Sandbox Code Playgroud)

这很糟糕,只适用于两个元素.另请注意

(a,b) = (twoPoints(0),twoPoints(1))
Run Code Online (Sandbox Code Playgroud)

不起作用.

collections scala

10
推荐指数
1
解决办法
4442
查看次数

Scala + IDEA:sbt和fsc的优点和缺点

我目前正在使用IDEA的构建机制和fsc一起使用Scala进行开发.它仍然有点慢,不得不(重新)启动编译服务器是一件痛苦的事.这里有很多人建议将SBT与IDEA一起作为构建工具.

您如何看待每种方法的优缺点?

scala intellij-idea sbt

10
推荐指数
1
解决办法
2023
查看次数

解释Scala类型级编程中使用的`LowPriorityImplicits`模式

在查看一些Scala库的来源时,例如无形,我经常会找到名为的特征LowPriorityImplicits.

你能解释一下这种模式吗?解决了什么问题,模式如何解决?

scala type-level-computation shapeless

10
推荐指数
1
解决办法
464
查看次数

忽略Scala组合器解析器中的C风格注释

什么是使我的解析器尊重(忽略)C风格注释的最简单方法.我对两种评论类型都感兴趣,但也欢迎只有一种类型的解决方案.

我目前只是在扩展JavaTokenParsers.

parsing scala parser-combinators

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

indexOf在Switch中

我有一个基于Javascript的机器人用于Xat聊天室,它也可以充当AI.我最近决定重做它的AI部分,因为它成为一个绝对庞大的else if声明链,变得几乎不可能使用.

我做了一些研究,并提出了如何处理响应的新想法.我先给你代码段:

function msgSwitch(id,msgRes) {
var botResponse = [];

switch (msgRes) {
  case (msgRes.indexOf("hi") !=-1):
    botResponse.push("HELLO. ");
  case (msgRes.indexOf("how are you") !=-1):
    botResponse.push("I AM FINE. ")
  case (msgRes.indexOf("do you like pie") !=-1):
    botResponse.push("I CAN'T EAT. THANKS, ASSHAT. ")
  default:
    respond (botResponse);
    spamCount(id);
    break;
}

}
Run Code Online (Sandbox Code Playgroud)

这里的想法是检查msgRes(用户的输入)并查看它匹配的案例数量.然后对于每个匹配,它将push响应到botResponse数组中,然后在结束时,它将回复该数组中的所有消息.

用户信息: Hi! How are you?

msgRes: hi how are you

机器人比赛:

hi>推HELLO.送到阵列

how are you>推I AM FINE.送到阵列

机器人回应: …

javascript switch-statement tampermonkey

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

嵌入式Scala REPL继承父类路径

正如Scala邮件列表中的这个帖子所要求的那样,我如何创建一个继承父程序类路径的嵌入式Scala REPL?假设父Scala程序是使用启动的scala -cp <classpath> ...; 可以<classpath>作为字符串访问并用于初始化嵌入的REPL?(可用的Java类路径System.getProperty("java.class.path")似乎与Scala类路径不同.)

或者,也许嵌入式Scala REPL可以从父进程继承或构造其ClassLoader(MichaelDürig的ScalaDays 2010谈话可能是相关的).这是推荐的方法吗?

scala

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

当将`map`应用于`Set`时,你有时希望结果不是一组但忽略了这一点

或者如何在映射时避免意外删除重复项Set

这是我经常犯的错误.看下面的代码:

def countSubelements[A](sl: Set[List[A]]): Int = sl.map(_.size).sum
Run Code Online (Sandbox Code Playgroud)

该函数应计算所有包含列表的累计大小.问题是在将列表映射到它们的长度之后,结果仍然是a,Set并且所有大小为1的列表都减少为单个代表.

这只是我有这个问题吗?我能做些什么来防止这种情况发生?我想我很想有两种方法mapToSet,并mapToSeqSet.但是没有办法强制执行此操作,有时您不会在本地注意到您正在使用Set.

也许你甚至有可能Seq在另一个类中编写代码以及某些更改并且底层对象变成了Set

也许是最好的做法,不要让这种情况出现?

远程编辑破坏了我的代码

想象一下以下情况:

val totalEdges = graph.nodes.map(_.getEdges).map(_.size).sum / 2
Run Code Online (Sandbox Code Playgroud)

Node从图形中获取对象的集合,使用它们来获取它们的相邻边缘并对它们求和.如果graph.nodes返回a,则有效Seq.

如果某人决定将Graph其节点作为一个返回,它就会中断Set; 没有这个代码看起来可疑(至少不是我,你认为每个集合可能最终成为一个Set?)而不触及它.

scala

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

以模块化方式创建Specs2匹配器

我有功能A => Double.我想检查两个这样的函数是否beCloseTo为给定的值集给出相同的结果(使用现有匹配器的公差).

我希望能够写:

type TF = A => Double
(f: TF) must computeSameResultsAs(g: TF,tolerance: Double, tests: Set[A])
Run Code Online (Sandbox Code Playgroud)

我想以模块化的方式构建这个匹配器,而不是简单地Matcher[TF]从头开始编写.

如果我能写的话可能会更好:

(f: TF) must computeSameResultsAs(g: TF)
               .withTolerance(tolerance)
               .onValues(tests: Set[A])
Run Code Online (Sandbox Code Playgroud)

我还想在匹配器失败时获得合理的描述.

编辑

睡了之后我想出了以下内容.

def computeSameResultsAs[A](ref: A => Double, tolerance: Double, args: Set[A]): Matcher[A => Double] = 
  args.map(beCloseOnArg(ref, tolerance, _)).reduce(_ and _)

def beCloseOnArg[A](ref: A => Double, tolerance: Double, arg: A): Matcher[A => Double] = 
  closeTo(ref(arg), tolerance) ^^ ((_: A => Double).apply(arg))
Run Code Online (Sandbox Code Playgroud)

这比Eric的解决方案短得多,但没有提供良好的失败信息.我希望能够在第二种方法中重命名映射值.像下面的东西(不编译).

def beCloseOnArg[A](ref: A => …
Run Code Online (Sandbox Code Playgroud)

specs scala specs2

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

如何在Scala中实现`List` monad变换器?

我有一个与收集monad非常相似的monad.我正在尝试为它实现monad变换器,但我失败了.

我已经看过6和7 中的ListT实现Scalaz,但我无法理解它是如何工作的.它使用了一些其他类型Step,我的目的不明确.

那么有人可以向我解释如何通过解释Scalaz方法或使用不同的实现来实现列表monad转换器?

scala monad-transformers scalaz

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