给出了表达相同功能的三种方式f(a) := a + 1:
val f1 = (a:Int) => a + 1
def f2 = (a:Int) => a + 1
def f3:(Int => Int) = a => a + 1
Run Code Online (Sandbox Code Playgroud)
这些定义有何不同?REPL没有表明任何明显的差异:
scala> f1
res38: (Int) => Int = <function1>
scala> f2
res39: (Int) => Int = <function1>
scala> f3
res40: (Int) => Int = <function1>
Run Code Online (Sandbox Code Playgroud) 这个问题正在削弱我的生产力.
Emacs入门套件自动启用hl-line,突出显示当前行.这让我无法在当前行看到突出显示.
我试过设置(global-hl-line-mode nil)和(hl-line-mode nil)全球范围内,并添加到模式挂钩,如Clojure的模式挂钩,但它仍然显示.
我需要什么elisp来禁用此功能?
我下载了Scala 2.8,安装了包含的vim脚本,并尝试输入一些Scala代码.当我输入val x = 1 + 2并按下ENTER时,缩进变为低于v.当我输入时val x = (1 + 2),缩进低于x!
如果任何人都使用VIM 进行Scala,很久以前就会看到这个bug.或者我是唯一一个看到这个的人?
在Python中我会做以下事情:
>>> q = urllib.urlencode({"q": "clojure url"})
>>> q
'q=clojure+url'
>>> url = "http://stackoverflow.com/search?" + q
>>> url
'http://stackoverflow.com/search?q=clojure+url'
Run Code Online (Sandbox Code Playgroud)
如何在Clojure中完成上面为我完成的所有编码?换句话说,我该怎么做类似以下的事情:
=> (build-url "http://stackoverflow.com/search" {"q" "clojure url"})
"http://stackoverflow.com/search?q=clojure+url"
Run Code Online (Sandbox Code Playgroud) 还在试着把头包裹在Clojure周围.我可以看到如何在Haskell,Python等中实现以下内容,但还不知道如何在Clojure中编写它.感谢有人能告诉我基本结构.下面的伪代码.
a = get_a
if (a == bad_value) then throw exception_a
b = get_b
if (b == bad_value) then throw exception_b
c = get_c
if (c == bad_value) then throw exception_c
...
do_action_with a b c
Run Code Online (Sandbox Code Playgroud)
这会是一堆让我们最后的表达吗?谢谢.
我想在我的.emacs中添加这样的东西:
(local-set-key (kbd "C-c a =")
(lambda () (interactive)
(align-regexp (region-beginning) (region-end) "=")))
Run Code Online (Sandbox Code Playgroud)
但每当我运行它时,我都会收到错误"错误的类型参数:numberp,nil".
这个错误意味着什么,我如何得到我正在寻找的效果?
有printf.它直接打印到stdout.
sprintf怎么样,格式与printf相同,但返回一个没有副作用的字符串?
我在scala-mode下的Emacs中有以下代码(来自Scala 2.8包):
object t1 {
def main (args: List[String]) = {
println("Hello")
}
}
Run Code Online (Sandbox Code Playgroud)
我也将我的返回键设置为newline-and-indent.当我在最后一个括号后反复点击返回时,它会转到最左边的一列空行.当我再次按下返回时,它会缩进两个空格.然后它停留在这个缩进处.显然它不应该这样做.
但是,当我反复运行newline-and-indentMx并打字时newline-and-indent,我没有得到两个空格的缩进.同样的道理reindent-then-newline-and-indent.
为什么会出现这种差异?