小编Sam*_*ard的帖子

Common Lisp并行编程

我想在Common Lisp中并行实现我的粒子滤波算法.粒子过滤和采样可以并行化,我想为我的4核机器做这个.我的问题是并行编程是否在CL中是可行的,如果可行,是否有任何良好的读数,关于在CL中开始并行计算的教程.

lisp parallel-processing concurrency common-lisp

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

我可以将类的名称作为编译时常量获取而不用字符串文字对其进行硬编码吗?

我正在研究注释处理器.此代码编译:

package sand;

import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.lang.model.element.TypeElement;

@SupportedAnnotationTypes("sand.Foo")
public class FooProcessor extends AbstractProcessor {

    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        return false; // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我对字符串常量"sand.Foo"感到不满(在这种情况下不是太多,但对于将来会更多).

如果Foo重命名或移动到另一个包,此代码仍将编译,但它不起作用.

我想做的事情如下:

@SupportedAnnotationTypes(Foo.class)
Run Code Online (Sandbox Code Playgroud)

这样,如果Foo的名称发生变化,编译将失败,有人必须更正文件.

但这不起作用,因为a Class不是String.所以我尝试过:

@SupportedAnnotationTypes(Foo.class.getName())
Run Code Online (Sandbox Code Playgroud)

但编译器并不认为这是一个常量表达式,这在此上下文中是必需的,因此也不起作用.

在编译时有没有办法将类文字强制转换为它的名字?

java reflection constants compile-time-constant

15
推荐指数
2
解决办法
1605
查看次数

使用javax.xml.soap.SOAPConnection设置套接字读取超时

我正在使用javax.xml.soapAPI(javax.xml.soap.SOAPConnectionFactory,javax.xml.soap.SOAPConnection和朋友)对远程服务器进行Web服务调用,大部分都取得了巨大的成功.

但是,有时会出现问题,程序会永远陷入困境.

为了解决这个问题,我想添加一个读取超时.

我找到了几种可能实现这一目标的方法,但它们看起来都非常糟糕.

所以我对社区的问题是:在使用javax.xml.soap API进行调用时,实现读取超时行为的最佳方法是什么?

java saaj

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

是裸的`char32_t`是签名还是未签名?

同样,是裸体char16_t签名还是未签名?它是实现定义的吗?

c++ c++11

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

有没有办法让sbcl打印出CPU寄存器的值?

有没有办法让SBCL在我的程序中的某一点获取CPU寄存器的值并将其打印为整数?

我必须使用gdb吗?

assembly x86-64 sbcl common-lisp cpu-registers

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

如何创建一个接受尾随垃圾的DateTimeFormatter?

我正在改造旧的一些SimpleDateFormat代码以使用新的Java 8 DateTimeFormatter. SimpleDateFormat,因此旧代码在日期之后接受带有其中内容的字符串,如"20130311nonsense".在DateTimeFormat创建我抛出了一个DateTimeParseException为这些字符串,这可能是做正确的事情,但我想保持兼容性.我可以修改我DateTimeFormat接受这些字符串吗?

我目前正在创建它:

DateTimeFormatter.ofPattern("yyyyMMdd")
Run Code Online (Sandbox Code Playgroud)

java date-parsing java-8

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

如何为稀疏数组实现Javascript ECMA 5的array.map()?

它应该很容易实现array.map(),它在ECMA-262中定义,它接受一个函数,这个函数将由3个参数调用:元素值,索引,数组.

但是对于稀疏数组呢?显然,如果只有索引0,1,2和100,000具有一个元素,并且从索引3到99,999稀疏,我们不希望从索引0迭代到100,000.我可以考虑使用arr.slice(0)arr.concat()克隆数组,然后输入替换值,但是如果我们不使用slice或者concat,还有其他方法吗?

我想出的解决方案slice()是:

Array.prototype.collect = Array.prototype.collect || function(fn) {
    var result = this.slice(0);

    for (var i in this) {
      if (this.hasOwnProperty(i))
        result[i] = fn(this[i], i, this);  // 3 arguments according to ECMA specs
    }
    return result;
};
Run Code Online (Sandbox Code Playgroud)

(collect用于试用代码,因为这是map某种语言的另一个名称)

javascript

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

空C++文件的用途是什么?

翻译阶段2的第二部分(N3485中的第2.2.2 )基本上说如果源文件没有以换行符结尾,编译器应该将其视为原样.

但是,如果我正确读取它,它会为空源文件做一个显式异常,它们仍为空.

确切的文字(更加强调)是:

\删除反斜杠字符()后面紧跟一个新行字符的每个实例,拼接物理源代码行以形成逻辑源代码行.只有任何物理源线上的最后反斜杠才有资格成为此类拼接的一部分.因此,如果生成与通用字符名称的语法匹配的字符序列,则行为未定义.一个非空的并且不以换行符结尾的源文件,或者在任何此类拼接发生之前以反斜杠字符开头的新行字符结尾的源文件,应该被处理,就像另一个新文件一样 - 行字符被附加到文件中.

我无法弄清楚源文件是空的还是仅由换行符组成的任何情况都会产生影响.

我希望有人可以说明这一要求背后的原因.

c++ language-lawyer

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

如何从十六进制转换GPS经度和纬度

我正在尝试从GPS追踪设备转换GPS数据.该公司提供了协议手册,但目前尚不清楚.我能够从设备收到的数据包中解码大部分数据.通信是通过TCP/IP进行的.我在解码经度和纬度的十六进制值时遇到问题.以下是手册中的示例:

例:22º32.7658'=(22X60 + 32.7658)X3000 = 40582974,然后转换成十六进制数40582974(十进制)= 26B3F3E(十六进制),最后该值为0x02 0x6B 0x3F 0x3E.

我想知道如何从十六进制逆转到经度和纬度.该设备将发送26B3F3E.我想知道获得22º32.7658的过程.

该协议适用于GT06和Heacent 908.

gps

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

存储一组序列的所有子序列时减少内存使用

我有一组输入序列(表示为列表),对于每个输入序列,我都会生成一组其所有子序列(也包括列表)。这些子序列作为键存储在EQUAL哈希表中,并且永远不会进行垃圾回收或修改(但是,相关联的值会被修改)。

我的问题是,我目前用于实现此目的的方法使用的堆空间比我想要的要多得多。

为了弄清楚我在说什么,假设我们有一个序列:

#1=(A B C D)
Run Code Online (Sandbox Code Playgroud)

子序列为:

#2=()
#3=(A)
#4=(A B)
#5=(A B C)
#6=(A B C D)
#7=(B)
#8=(B C)
#9=(B C D)
#10=(C)
#11=(C D)
#12=(D)
Run Code Online (Sandbox Code Playgroud)

以下代码(我承认不是很好)会生成此集合(除了我实际上并不关心的空子序列):

(defun subseqs-of-length (length sequence)
  (if (< (length sequence) length)
      nil
      (loop for start from 0 to (- (length sequence) length)
           collect (subseq sequence start (+ start length)))))

(defun subseqs-of-length-< (length sequence)
  (loop for len from 1 to (1- length)
     append (subseqs-of-length len sequence)))

(defun all-subseqs (sequence)
    (subseqs-of-length-< (1+ (length sequence)) …
Run Code Online (Sandbox Code Playgroud)

common-lisp

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