小编woo*_*ngs的帖子

如何获得一个调用Java方法的Fn?

我正在学习Clojure.我写了这段代码来递归遍历一个目录.

(tree-seq #(.isDirectory %1) #(.listFiles %1) (File. "/my-directory"))
Run Code Online (Sandbox Code Playgroud)

为什么我不能.isDirectory在Clojure中用作一流函数?有没有更好的方法来重写此代码?

clojure

3
推荐指数
2
解决办法
132
查看次数

为什么Clojure不遵循java代码中最常见的缩进样式?

我在Clojure中查看java代码.我发现缩进对我来说很奇怪.

我已经习惯了http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#262的缩进风格.大多数IDE都以这种方式配置了自动格式化.为什么Clojure不遵循这种风格?

更新:

我的意思是用java实现的Clojure部分,例如https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/ARef.java

java clojure

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

我应该避免在Scala中定义"对象"吗?

我认为Scala中的"对象"非常类似于Java中的Singleton,这被认为不是一个好的设计实践.单身对我来说就像定义全局变量的另一种方式是BAD.我写了一些这样的Scala代码,因为它很简单并且可以工作,但代码看起来很难看:

object HttpServer { // I'm the only HttpServer instance in this program.
  var someGlobalState: State
  def run() {
    // do something
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图避免这样做.什么时候定义Scala对象好?

design-patterns scala

3
推荐指数
2
解决办法
1673
查看次数

为什么std :: shared_ptr没有使用引用链接?

std::shared_ptr需要在堆上分配一个控制块来保存引用计数.我从http://ootips.org/yonat/4dev/smart-pointers.html学到了另一种方法,它将所有引用保存在双向链表中.它不需要额外的分配也不需要计数器,但参考对象本身更大.

有没有基准或任何明确的理由表明一个实施比其他实施更好?

c++ smart-pointers reference-counting shared-ptr c++11

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

是否有可能以原子方式加载和存储在X86处理器上?

这可以原子地完成吗?

void load_and_store(int* dst, int* src) {
  int data = *src;
  *dst = data;
}
Run Code Online (Sandbox Code Playgroud)

如果必须完成原子存储XCHG [addr], EAX,我将不得不首先加载数据EAX.然后加载和存储不是原子的.

gcc原子扩展void __atomic_store (type *ptr, type *val, int memmodel)看起来像能够以原子方式加载和存储.

c++ concurrency x86 processor atomic

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

Emacs:选择一个区域并键入以删除该区域

如何告诉emacs以与Windows或Mac相同的方式工作,如果我选择一个区域并开始输入,该区域将在插入新文本之前删除?

emacs

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

有没有办法使用Go反射获取全名类型?

在Java中,可以通过Class.forName("com.my_pkg_name.MyClass")返回类类型来完成.

似乎Go反射只能找到Type by Value但不允许Name为Type.在实现与Go代码交互的脚本语言解释器时,此功能非常有用.

go

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

如何编写SQL来选择每个组中的最大值?

假设我们有一个像这样的城市的州(varchar),城市(varchar)和人口(int)表,

New York, New York, 8175133
Los Angeles, California, 3792621
Chicago, Illinois, 2695598
San Diego, California, 1307402
Run Code Online (Sandbox Code Playgroud)

我想选择人口最多的每个州的城市.结果是,

New York, New York, 8175133
Los Angeles, California, 3792621
Chicago, Illinois, 2695598
Run Code Online (Sandbox Code Playgroud)

如何编写SQL来做到这一点?

更新:

让我说清楚:结果应该包含每个州人口最多的一个城市.在上面的例子中,"圣地亚哥"的人口比"洛杉矶"少,所以它不会出现在结果中.

sql

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

读/写数组中的元素是原子操作吗?

我有多个线程从一个标记为 final 的共享数组访问元素(我永远不会尝试为它分配另一个数组)。我需要同步任何东西吗?我可以假设对元素的读/写是原子的吗?

java synchronization thread-safety

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

是否有任何宏可以帮助用一个开放参数创建一个函数?

(map (fn [x] (func 1 2 x)) [0 1 2])在哪里func需要3个参数可以写(map #(func 1 2 %) [0 1 2])为简短.是否有可能使它更简洁?就像在OCaml中一样,(func 1 2)它本身就是一个功能.我不需要创建一个新的并将其传递给map.

clojure

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

如何检查密钥是否存在于std :: map中并在if条件下获取map :: iterator?

我想在条件表达式中定义变量,以便变量范围在if子句中.这工作正常,

if (int* x = new int(123)) { }

当我试图用map :: iterator做类似的事情时,

if ((map<string, Property>::iterator it = props.find(PROP_NAME)) != props.end()) { it->do_something(); }

我有 error: expected primary-expression before ‘it’

什么区别int*和map::iterator?

c++

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

在网络爬虫中惯用惯用原子

例如,在Web爬网程序中,它维护一组全局访问URL.一旦工作人员开始处理URL或已完成URL,其他工作人员不应使用相同的URL.在Java中实现这一点的一种方法是将访问过的URL放在一个ConcurrentHashMap(一个Set可能更好).每个工作人员在访问URL之前都会查看地图

if (visited.putIfAbsent(url, true) == null) {
  crawl(url);
} else {
  // do nothing
}
Run Code Online (Sandbox Code Playgroud)

在Clojure中,我使用了一个集合atom.每次我要使用最新访问过的URL交换新集时,交换函数应该检查集合是否已经具有此URL.如果URL存在,那么工作人员应该从那里停止.为了能够告诉工作者交换是否成功,我必须将返回值保存在全局状态中[visited-urls last-swap-succeeded]

(def state (atom [#{} nil]))
(defn f [state key] (let [[visited-urls l] state] (if (visited-urls key) [visited-urls false] [(conj (visited-urls key) true]))))
Run Code Online (Sandbox Code Playgroud)

工人应该这样做

(when (second (swap! state f url)) (crawl url))
Run Code Online (Sandbox Code Playgroud)

它起作用,但对我来说看起来很难看.问题是交换功能不允许返回呼叫站点的值.在Clojure中有更好的方法吗?

clojure

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

IntelliJ IDEA项目中的用户相关文件

我们有一个小团队使用IntelliJ IDEA作为Java IDE并使用git管理我们的源代码.IDEA项目是基于目录的格式创建的.我发现下面的一些文件.idea与用户有关.

是否有可以过滤的用户相关文件的完整列表.gitignore?

java intellij-idea

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