小编Dav*_*ams的帖子

Leiningen在使用相同版本号重新安装后不会下载依赖项

这非常重要,我在截止日期前完全陷入困境.非常感谢帮助.

我有一个名为red-black的Clojure项目,它特别包含一个名为interval_tree.clj的文件

我一直在用lein uberjar编译这个项目,然后在其他项目中使用生成的jar,将它安装在本地maven资源库中.

mvn install:install-file  \   
    -Dfile=../red-black/target/red-black-0.1.0.jar  \  
    -DgroupId=self   \
    -DartifactId=red-black  \
    -Dversion=0.1.0  \
    -Dpackaging=jar  \
    -DgeneratePom=true  \
    -DcreateChecksum=true  \
    -DlocalRepositoryPath=local_mvn_repo
Run Code Online (Sandbox Code Playgroud)

疯狂的是,我添加了一个新功能,编译我的jar并在另一个项目的本地maven存储库中重新安装它,现在java无法找到我的新功能

user=> (red-black.interval-tree/tree-to-flat-list )
CompilerException java.lang.RuntimeException: No such var: red-black.interval-tree/tree-to-flat-list, compiling (NO_SOURCE_PATH:1:1)
Run Code Online (Sandbox Code Playgroud)

但是这个函数是red-black.interval-tree.clj!我甚至进入了我的local_mvn_repo,解压缩了jar,并查看了interval_tree.clj源代码.功能就在那里!

更奇怪的是,该库中的其他功能是可访问的.例如,在我的第二个项目中使用本地mvn repo:

user=> (use 'red-black.interval-tree)
nil
Run Code Online (Sandbox Code Playgroud)

现在一个小标签选项卡魔术:

user=> (red-black.interval-tree/
red-black.interval-tree/add-to-result        red-black.interval-tree/black                red-black.interval-tree/check-max-interval
red-black.interval-tree/get-color            red-black.interval-tree/get-hash             red-black.interval-tree/get-interval
red-black.interval-tree/get-key              red-black.interval-tree/get-left             red-black.interval-tree/get-max
red-black.interval-tree/get-parent           red-black.interval-tree/get-right            red-black.interval-tree/get-root
red-black.interval-tree/get-sentinel         red-black.interval-tree/get-value            red-black.interval-tree/has?
red-black.interval-tree/health-check         red-black.interval-tree/high                 red-black.interval-tree/insert
red-black.interval-tree/insert-fixup         red-black.interval-tree/left-rotate          red-black.interval-tree/low
red-black.interval-tree/max-of-three         red-black.interval-tree/new                  red-black.interval-tree/node
red-black.interval-tree/point-lookup         red-black.interval-tree/pretty-print         red-black.interval-tree/recursive-max
red-black.interval-tree/red                  red-black.interval-tree/right-rotate         red-black.interval-tree/set-color
red-black.interval-tree/set-interval         red-black.interval-tree/set-key              red-black.interval-tree/set-left
red-black.interval-tree/set-max              red-black.interval-tree/set-parent           red-black.interval-tree/set-right …
Run Code Online (Sandbox Code Playgroud)

clojure uberjar maven leiningen

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

Clojure:减法中的舍入不一致

我正在研究一段代码,其中数字相等是几个逻辑条件中的一个重要因素.Clojure正在做一些我不太了解的事情.例如:

user=> (- 5 4.9)
0.09999999999999964
user=> (- 5 4.8)
0.20000000000000018
user=> (- 5 2.9)
2.1
user=> (- 5 2.7)
2.3
user=> (- 5 2.8)
2.2
user=> (- 9 6.9)
2.0999999999999996 
user=> (- 9 2.9)
6.1
Run Code Online (Sandbox Code Playgroud)

在某些情况下,Clojure数字似乎将减法理解为0.1,而在其他情况下则不然.这里发生了什么?

clojure rounding numerical-stability

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

Clojure:将符号重新绑定到新的数据结构

如何在Clojure中将符号重新绑定到新的数据结构.例如:

 (def hash-map-one {:a "foo" :b "bar"})
 (def hash-map-two {:c "gaz" :d "waka"})

 ;; right here make hash-map-one equal to hash-map-two very quickly
 ;; if this were python I would say hash-map-one = hash-map-two
Run Code Online (Sandbox Code Playgroud)

有点动机,我这样做是因为我有一个依赖于数据文件的Web服务,并且该数据文件将被更新,此时我需要在没有停机的情况下"切换"到新数据.

提前致谢!

binding symbols clojure

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

C++数组分配分段故障11新手

我正在学习Robert Sedgewick的Algorithms in C++中的C++.现在我正在研究Eratosthenes的Sieve,用户指定最大素数的上限.当我使用max 46349运行代码时,它运行并打印出所有质数,最高可达46349,但是当我运行max 46350的代码时,会发生分段错误.有人可以帮忙解释原因吗?

./sieve.exe 46349
 2 3 5 7 11 13 17 19 23 29 31 ...

./sieve.exe 46350
 Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)

码:

#include<iostream>

using namespace std;

static const int N = 1000;

int main(int argc, char *argv[]) {
    int i, M;

    //parse argument as integer
    if( argv[1] ) {
        M = atoi(argv[1]);
    }

    if( not M ) {
        M = N;
    }

    //allocate memory to the array
    int *a = new int[M];

    //are we out of …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management segmentation-fault sieve-of-eratosthenes

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

Clojure:返回一个java for循环的Iterator

可以说我在Java中有一个for循环:

 for(Foo foo : foos){ do_something() }
Run Code Online (Sandbox Code Playgroud)

现在让我说我想将这个列表迭代翻译成惯用的clojure.什么是最好的方式?我想在foos集合中返回一些我可以像迭代器一样使用的东西.

java iterator for-loop clojure

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

AWS/Java:如何从AWS Java API获取EC2实例

我试图通过aws java api以编程方式列出我的ec2实例.

public static void main(String[] args) {
    AWSCredentials awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
    AmazonEC2AsyncClient amazonEC2AsyncClient = new AmazonEC2AsyncClient(awsCredentials);
    DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest = new DescribeAvailabilityZonesRequest();
    Future<DescribeAvailabilityZonesResult> describeAvailabilityZonesResultFuture = amazonEC2AsyncClient.describeAvailabilityZonesAsync(describeAvailabilityZonesRequest);
    try {
        DescribeAvailabilityZonesResult describeAvailabilityZonesResult = describeAvailabilityZonesResultFuture.get();
        System.out.println(describeAvailabilityZonesResult);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

这打印如下:

{AvailabilityZones: [
    {ZoneName: us-east-1a,State: available,RegionName: us-east-1,Messages: []}, 
    {ZoneName: us-east-1b,State: available,RegionName: us-east-1,Messages: []}, 
    {ZoneName: us-east-1c,State: available,RegionName: us-east-1,Messages: []}]}
Run Code Online (Sandbox Code Playgroud)

但是,我知道我在us-west-2中有例子.当我将其添加到我的api查询中时

describeAvailabilityZonesRequest.withZoneNames("us-west-2");
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

java.util.concurrent.ExecutionException: com.amazonaws.AmazonServiceException: Status Code: 400, AWS Service: AmazonEC2, AWS Request ID: 38956486-2686-4466-b9e0-45ef12395676, AWS Error Code: …
Run Code Online (Sandbox Code Playgroud)

java amazon-ec2 amazon-web-services

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

Clojure,Codox:如何使用:doc元数据而不是docstring?

我正在考虑正统.我知道docstrings被解析和显示,但是我可以启用^{:doc "Description"}解析吗?例如,这是有效的

(defn get-foo "Get the Foo" [] @foo) 
Run Code Online (Sandbox Code Playgroud)

但不是这个

(defn get-foo ^{:doc "Get the Foo"} [] @foo) 
Run Code Online (Sandbox Code Playgroud)

clojure

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

Maven:蚂蚁运行的插件回显似乎不执行

我有一个使用ant-run插件的maven项目。我添加了回显消息,但它似乎没有执行:

<build>
    <plugins>
         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-antrun-plugin</artifactId>
             <executions>
                 <execution>
                     <id>ast-application-deployment-kit</id>
                         <phase>package</phase>
                         <goals>
                              <goal>run</goal>
                         </goals>
                         <configuration>
                             <target>
                                 <echo message="Starting ant-run target configuration."/>
Run Code Online (Sandbox Code Playgroud)

但是当mvn clean package我看到

[INFO] --- maven-antrun-plugin:1.3:run (my-app) @ my-app ---
[INFO] Executing tasks
[INFO] Executed tasks
Run Code Online (Sandbox Code Playgroud)

但我看不到回声。我究竟做错了什么?

maven maven-antrun-plugin

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

“Fri Jun 05 00:00:00 PDT 2015”的日期格式是什么

我正在尝试确定要使用的 java 日期格式字符串

"Fri Jun 05 00:00:00 PDT 2015"
Run Code Online (Sandbox Code Playgroud)

现在我正在使用

SimpleDateFormat format = new SimpleDateFormat("EEE MM dd HH:mm:ss zzzz yyyy");
Run Code Online (Sandbox Code Playgroud)

但这会产生

  com.fasterxml.jackson.databind.JsonMappingException: 
  java.text.ParseException: Unparseable date: "Fri Jun 05 00:00:00 PDT 2015" 
  (through reference chain:....
Run Code Online (Sandbox Code Playgroud)

java date-format simpledateformat

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

Clojure:如何在函数调用之间保留可变参数

我有两个可变参数函数。其中一个将其参数传递给另一个。问题是可变参数在第二次调用时变成了一个列表。我如何保持它们的可变参数?

=> (defn foo [x & ys] (println x ys))
=> (defn bar [x & ys] (foo (clojure.string/upper-case x) ys))
=> (foo "hi")  
hi nil
=> (bar "hi")
HI (nil)
Run Code Online (Sandbox Code Playgroud)

在实际函数中,foo 将其 args 传递给可变参数 java 函数,因此 varargs 确实需要保留 varargs。我该怎么做呢?

clojure variadic-functions

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