小编woo*_*ngs的帖子

Clojure:与fn有什么不同?

如果我明确定义这样的功能(defn f [x] (get x "a")),那么这两个(-> {"a" 1} f)并(f {"a" 1})达到预期效果.

但是,如果我使用匿名函数,只能(#(get % "a") {"a" 1})工作但(-> {"a" 1} #(get % "a"))抛出异常:CompilerException java.lang.ClassCastException: clojure.lang.PersistentArrayMap cannot \ be cast to clojure.lang.ISeq, compiling:(NO_SOURCE_PATH:1:1)

clojure language-lawyer

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

F# - 我可以使用类型名称作为默认构造函数吗?

要创建我的班级序列,

type MyInt(i:int) =
    member this.i = i

[1;2;3] |> Seq.map(fun x->MyInt(x))
Run Code Online (Sandbox Code Playgroud)

哪里fun x->MyInt(x)似乎是多余的.如果我能写的话会更好Seq.map(MyInt)

但是我不能.我能想到的一个解决方法是定义一个单独的函数

let myint x = MyInt(x)
[1;2;3] |> Seq.map(myint)
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

f#

6
推荐指数
2
解决办法
362
查看次数

用Clojure编写脚本

我试图用Clojure做一些简单的脚本编写工作.例如,我将加载一个包含文件映射的json,删除给定的密钥,然后将其保存回文件.使用leiningen,似乎我必须创建一个应用程序,将data.json或其他任何内容添加到依赖项中,然后我可以启动lein repl来完成真正的工作.考虑用Python做同样的事情.它应该用Python中的3行代码完成.leiningen有一个简单的方法吗?

clojure leiningen

6
推荐指数
2
解决办法
1595
查看次数

用于在Omnicomplete框中上下导航的Vim样式键

我从emacs转移到vim的原因之一是避免使用Ctrl + N和Ctrl + P等难以置信的键绑定来上下.我更喜欢像hjkl这样更符合人体工程学的键.但是,在没有使用箭头键或Ctrl + N/P的情况下,我没有找到在Omnicomplete框中导航的方法.

vim是否提供其他上下键?

在此输入图像描述

vim

6
推荐指数
2
解决办法
1355
查看次数

Clojure:多个let绑定

在Java中,我通常这样做,

MyObject o1 = new MyObject();
o1.doSomething();
MyObject o2 = new MyObject();
o2.doWith(o1);
MyObject o3 = new MyObject();
o3.doWithBoth(o1, o2);
Run Code Online (Sandbox Code Playgroud)

在Clojure中,如果我使用let绑定,它可能看起来像,

(let [o1 (create-obj)]
  (.doSomething o1)
  (let [o2 (create-obj)]
    (.doWith o2 o1)
    (let [o3 (create-obj)]
      (.doWithBoth o3 o1 o2))))
Run Code Online (Sandbox Code Playgroud)

代码增长到右侧,这是丑陋的,难以维护.有一个更好的方法吗?

clojure

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

为什么 Pandas 允许非唯一索引?

Pandas 允许唯一和非唯一索引。某些操作仅允许唯一索引。在什么情况下使用非唯一索引才有意义?我认为强制执行索引的唯一性可以帮助提前发现数据完整性问题。

python pandas

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

为什么golang在没有显式类型转换的情况下允许命名切片类型赋值

我认为在没有显式类型转换的情况下,go不允许任何命名类型进行实际类型赋值.

但如果我分配[]byte给它,如何编译没有错误json.RawMessage?

var a json.RawMessage // type RawMessage []byte
var b []byte

a = b

var x time.Duration // type Duration int64
var y int64

x = y // ERROR: cannot use y (type int64) as type time.Duration in assignment
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/oD5LwJl7an

go

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

F#有Seq.Single:seq <'a> - >'a?

可能重复:
F#相当于LINQ Single

如果序列的唯一元素,则此函数应返回序列的第一个元素,否则抛出异常.

F#是否将此作为内置函数?如果没有,为什么呢?似乎C#在Enumerable类扩展函数中有类似的一个.

f#

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

JVM或CLR是否使用寄存器来运行JIT代码?

我知道JVM和CLR被设计为基于堆栈的虚拟机.当JIT将字节码编译成本机代码时,它是否还将堆栈原语(加载/存储)转换为X86平台上的寄存器?

如果是,看起来字节码是基于堆栈还是基于寄存器并不重要.JIT很重要.

clr jit jvm cpu-registers

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

Clojure:如何忽略可能从表达式抛出的异常?

我用,(try (/ 1 0) (catch Exception e))但似乎多余.有更简单的方法吗?我使用它的一个例子就是我这样做sql/drop-table.如果该调用因为表不存在而失败并不重要.

clojure

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

标签 统计

clojure ×4

f# ×2

clr ×1

cpu-registers ×1

go ×1

jit ×1

jvm ×1

language-lawyer ×1

leiningen ×1

pandas ×1

python ×1

vim ×1