小编象嘉道*_*象嘉道的帖子

同时迭代HashMap对象是否是线程安全的?

如果多个线程同时迭代一个HashMap对象而不修改它,那么竞争条件是否存在?

java concurrency

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

如何使用变量作为正则表达式值?

例如:

(regexp-match #rx"a|b" "cat")
Run Code Online (Sandbox Code Playgroud)

我想绑定一个变量,"a|b"以便我可以动态创建模式.

lisp regex scheme racket

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

如何通过指针获取数组的大小?

对于以下场景,如何a通过指针获取数组的大小(3)c?解决这类问题的模式是什么?

struct struct_point {
  int x;
  int y;
  int z;
};

typedef struct struct_point point;

int test_void_pointer () {
  point a[3] = {{1, 1, 1}, {2, 2, 2}};
  void * b;
  point * c;
  b = a;
  c = b;
  /* get_size_p (c) */
}
Run Code Online (Sandbox Code Playgroud)

c pointers

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

何时需要尾递归,在惰性求值的背景下?

我的理解(可能是不正确的或不完整的)是懒惰的评估可以提供尾递归的所有优点,并且做得更好.

如果是这样,是否意味着在惰性求值的上下文中不需要尾递归

UPDATE

具体来说,让我们看一下以下示例:

(define (foo f a)
  (if (number? a)
    (* a a)
    (lazy-map foo a)))
Run Code Online (Sandbox Code Playgroud)

该函数可以很容易地转换为尾递归函数.但是,如果是这样,我们将失去懒惰评估的优势.

实际上,当输入是一个非常大的列表(或无限)时,这个非尾递归函数是否需要消耗很多堆栈?我不这么认为.那么,是否有充分的理由使用尾递归而不是懒惰的评估

scheme haskell functional-programming clojure lazy-evaluation

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

是否有完整的Clojure核心模块的惰性函数列表?

经过一段时间与Clojure合作,我已经积累了一些关于它的懒惰的知识.我知道一个常用的API(例如map)是否是懒惰的.但是,当我开始使用不熟悉的API(例如with-open)时,我仍然感到怀疑.

是否有任何文档显示Clojure核心模块的惰性API的完整列表?

clojure

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

如何覆盖这个hashCode方法?

至于人物的定义:

public class Person {
    private int id;
    private int characteristics;
    public boolean equals (Object obj) {
           if (obj == this) {
                 return true;
           }
           if (obj instanceof Person) {
                 if (id == ((Person) obj).id) {
                     return true;
                 } else if (characteristics == ((Person) obj).characteristics) {
                     return true;
                 }
           }
           return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

导致2个Person对象a,b如果a.equals(b)返回必须具有相同的哈希码true,我该如何实现该hashCode方法?

我的equals方法实现,根据Java的等效协议是不正确的:传递不满意:a.id = 1,a.characteristic = 2 …

java

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

通过多个线程删除java.util.Collection元素

在多线程模块中,我不关心它是否是线程安全地写入java.util.Collection(例如java.util.Set)对象.它的作用是通过多个线程删除一些独立元素,这可能同时对同一元素执行删除.那么,会发生什么?该元素被删除,或抛出任何异常?


科佳

java concurrency multithreading

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

这个函数尾递归吗?

球拍中,我定义了以下函数,我想知道它是否是尾递归的:

(define foo
  (? (c m s1 s2)
      (if (< c m)
          (if (= (modulo m c) 0)
              (foo (+ c 1) m (+ s1 c) s2)
              (foo (+ c 2) m s1 (+ s2 c)))
          (cons s1 s2))))
Run Code Online (Sandbox Code Playgroud)

我的问题几乎就是这样,但我必须写一些其他内容来满足我的帖子质量标准.实际上,我不知道我的帖子质量标准是什么.

lisp scheme tail-recursion racket

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

函数为小写并与下划线连接

我想将标记的文本区域更改为由下划线连接的所有小写单词.例如:

A fox caught a bird => a_fox_caught_a_bird
Run Code Online (Sandbox Code Playgroud)

Emacs 23 的功能是什么?

emacs

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

c编程:类型转换有什么区别?

鉴于以下C代码,a = f;和之间有什么区别a = (int *) f;

float *f;
int *a;
...
a = f;
a = (int *) f;
Run Code Online (Sandbox Code Playgroud)

c

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

我们应该将什么称为clojure prog中声明的对象?

当我们谈论clojure(或其他lisp)编程时,在引用其中声明的对象时应该说什么?例如:

(let [a ...
Run Code Online (Sandbox Code Playgroud)

当然,如果a是一个函数,我们说函数a,但是当它不是函数时应该说什么呢?表格数据符号文字

通常,我们会在其他编程语言变量对象中说出这些内容.

lisp scheme clojure

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

这会导致悬空指针吗?

这样的函数会导致悬空指针吗?

int *foo () {
    int a[2] = {2, 3};
    int *p = NULL;
    p = a;
    return p;
}
Run Code Online (Sandbox Code Playgroud)

c pointers dangling-pointer

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

JNI:将多维java数组传递给c程序

在Java中,Integer[][] arr定义了例如非原始对象的多维数组.如何arr通过JNI 访问C程序中的数组?

public class Foo {
    public static Integer[][] arr = {{0}, {1, 2}, {3, 4, 5}};
}
Run Code Online (Sandbox Code Playgroud)

c java java-native-interface

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