小编dki*_*kim的帖子

IntelliJ IDEA - sbt插件 - '表达式类型Def.Setting [...]必须符合sbt文件中的DslEntry'

我找了类似的问题,我发现了这个:

表达式类型DslEntry必须符合SBT文件中的Def.SettingsDefinition行enablePlugins(JavaServerAppPackaging)

我的问题很相似,但每一行都会发生.

图像链接

当我尝试运行时,它会编译并成功运行.单击"导入项目"时,黄色通知不会消失,但项目会成功重新加载.例如,如果我重写任何行val _ = scalaVersion := "2.12.4",则错误消失,但看起来很糟糕.

scala intellij-idea sbt sbt-plugin

30
推荐指数
2
解决办法
4810
查看次数

为什么Emacs中的"goto-line"仅供交互使用?

如果goto-line在非交互式elisp程序中使用该函数会出现什么问题?它的docstring发出警告说:

在Lisp程序中使用此函数通常是错误的.您可能想要的是:

(goto-char (point-min)) (forward-line (1- N))
Run Code Online (Sandbox Code Playgroud)

此外,当我尝试byte-compile-file我的init文件时goto-line,我再次得到一个令人不快的警告:

.emacs:170:19:Warning: `goto-line' used from Lisp code
That command is designed for interactive use only
Run Code Online (Sandbox Code Playgroud)

使用goto-line在非交互式程序真的有这么危险吗?相关地,为什么建议的forward-line解决方案更可取?

emacs elisp

20
推荐指数
2
解决办法
2518
查看次数

Ocaml的命名参数

试图了解Ocaml的命名参数机制.我理解基础知识,但文档显示了这样的示例:

# let f ~x ~y = x - y;;
val f : x:int -> y:int -> int = <fun>

# let x = 3 and y = 2 in f ~x ~y;;
- : int = 1
Run Code Online (Sandbox Code Playgroud)

在应用中仅使用波浪号时究竟发生了什么?它只是简写~x:x,类似于定义吗?如果是这样,有人可以解释为什么这样:

# ListLabels.fold_left;;
- : f:('a -> 'b -> 'a) -> init:'a -> 'b list -> 'a = <fun>

# let add = (+) and i = 0 
in ListLabels.fold_left ~add ~i [1;2;3];;
Run Code Online (Sandbox Code Playgroud)

产生

- : f:((add:(int -> …
Run Code Online (Sandbox Code Playgroud)

ocaml currying named-parameters

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

emacs orgmode中的自定义时间戳

我想在emacs orgmode中以自定义格式插入时间戳.我想以这种形式插入当前时间(没有日期!):[HH:MM],按下.我是lisp的新手,无法弄清楚如何做到这一点.我的-file的起点是这样的:C-c -~/.emacs

(defun org-my-custom-timestamp ()
  (interactive)
  ( :SOME_CODE: )
)


(define-key global-map "\C-c-" 'org-my-custom-timestamp)
Run Code Online (Sandbox Code Playgroud)

现在这只是我的自定义函数的定义,称为org-my-custom-timestamp"交互"和快捷方式分配.但是,我尝试了各种各样的事情,:SOME_CODE:没有任何成功.

可以在功能中使用什么使其以所描述的方式工作?

是否有经验丰富的emacs用户甚至会考虑这种方式来解决它的实际问题,还是有更智能的方法来实现它?也许org-mode-internal?

emacs timestamp elisp org-mode

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

为什么不检查对象私有或对象保护定义的方差位置是否安全?

我了解到Scala不会检查object-private(private[this])或object-protected(protected[this])定义的方差位置.为什么不检查它们是否安全?

我已经阅读了一些与之相关的材料,但未能找到完整的答案.首先,Odersky等人的"Scala编程"说:

http://www.artima.com/pins1ed/type-parameterization.html#19.7

事实证明,从定义它们的同一对象访问变量不会导致方差问题.直观的解释是,为了构造方差会导致类型错误的情况,您需要引用一个包含对象,该对象具有比定义对象的类型更静态的类型.

我不确定作者的意思是" 包含对象"和" 静态较弱的类型".这里更优选代码示例.

其次,"senia"在Scala Modifiers和Type参数化中给出了一个很好的例子,它显示了class-private(private)字段可能带有方差的问题.这个例子让我相信为什么应该检查类私有成员的差异位置,但是没有给出我们不必检查对象私有/受保护定义的原因的答案.我理解这样的代码getOtherCache()不能用object-private字段写.但它没有给出对象私有/预测定义无害的证据,我们没有编写一个程序,对象 - 私有/预测定义导致方差问题.

第三,在解决如何在Scala中实现函数memoization时,Michid简要地提到了这个主题:

http://michid.wordpress.com/2009/02/23/function_mem/

class Memoize1[-T, +R](f: T => R) extends (T => R) {
  ...
  private[this] val vals = mutable.Map.empty[T, R]
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是,由于仅从包含实例访问val,因此不会导致方差问题.

不幸的是,它没有回答我的问题"如何(或为什么)是与方差相关的访问控制?".

您能否更详细地解释不检查对象 - 私有/受保护定义的方差位置(或提供一些参考)的基本原理?

scala covariance contravariance

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

为什么不让*默认让?

正如所有经验丰富的elispers在某些时候发现的那样,代码就像破了:

(let ((a 3)
      (b 4)
      (c (+ a b)))
  c)
Run Code Online (Sandbox Code Playgroud)

let*当引用绑定子句中的刚绑定变量时,应该使用表单.

我只是想知道 - 为什么看似错误的行为是默认的?let*无论人们如何使用它,总是有选择的风险吗?

lisp emacs elisp

4
推荐指数
2
解决办法
759
查看次数

使用scala-parser-combinators进行递归定义

我一直在尝试使用scala-parser-combinator库构建一个SQL解析器,我已将其大大简化为以下代码。

class Expression
case class FalseExpr() extends Expression
case class TrueExpr() extends Expression
case class AndExpression(expr1: Expression, expr2: Expression) extends Expression

object SimpleSqlParser {
  def parse(sql: String): Try[Expression] = new SimpleSqlParser().parse(sql)
}

class SimpleSqlParser extends RegexParsers {
  def parse(sql: String): Try[_ <: Expression] = parseAll(expression, sql) match {
    case Success(matched,_) => scala.util.Success(matched)
    case Failure(msg,remaining) => scala.util.Failure(new Exception("Parser failed: "+msg + "remaining: "+ remaining.source.toString.drop(remaining.offset)))
    case Error(msg,_) => scala.util.Failure(new Exception(msg))
  }

  private def expression: Parser[_ <: Expression] =
    andExpr | falseExpr | …
Run Code Online (Sandbox Code Playgroud)

scala parser-combinators left-recursion

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

如何通过密钥名称检索缺点单元格的值?

假设我有一个缺点列表,如下所示:

(setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))
Run Code Online (Sandbox Code Playgroud)

我想通过"密钥名称"检索特定缺点单元格的值.有没有让我这样做的功能?

例如

(get-by-key "a" foo) ;; => 1
Run Code Online (Sandbox Code Playgroud)

或类似的东西.提前致谢!

emacs elisp

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