问题标签 [clojure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8135 浏览

lisp - Clojure 变量和循环

通过谷歌搜索,我发现while不鼓励使用循环或使用变量。

现在我实现了一个非常简单的算法,它将从输入流中读取字符并进行相应的解析:如果输入是10:abcdefghej它将解析出来,10然后读取冒号后的下 10 个字节。

我有点迷失的是如何重构它,使其不依赖于变量。

另外,我知道声明变量的唯一方法是使用with-local-vars关键字。一开始就在一个块中定义所有变量是不是有点不切实际,或者我错过了一些关键点?

0 投票
2 回答
344 浏览

loops - Clojure 循环多读一个

当长度为 4 时,以下循环执行 5 次。从流中读取 5 个字符。

0 投票
1 回答
353 浏览

lisp - 将元数据添加到惰性序列

当我尝试将元数据添加到 Clojure 中的无限惰性序列时,我得到了堆栈溢出,如果我删除元数据,那么它就可以正常工作。为什么添加with-meta宏会破坏惰性序列?

首先创建一个非常好的数字的无限序列:

然后,为每个惰性序列实例添加一些元数据:

尝试将元数据上移一级:

以下是有限序列上的元数据示例:

0 投票
2 回答
4229 浏览

java - 奇怪的类路径,.NoClassDefFoundError 错误

编辑:找到解决方案。这很奇怪,不是最好的解决方案,但我只是继续将我的 JAVA CODE (com.*) 类放在 swt.jar 中,以便 swt.jar 和我的类在完全相同的时刻同时加载类加载器。不是最好的解决方案,而是临时解决方案

编辑:我在这里添加了大部分代码:http: //groups.google.com/group/clojure/browse_thread/thread/1d7dd4913b2f9aa7 http://groups.google.com/group/clojure/web/NoClassDefIssue.zip http : //groups.google.com/group/clojure/web/MostCodeIssue.java

这是奇怪的 no classdef not found 错误。这是与我 90% 的代码工作的情况略有不同的场景。请忽略我正在使用 Clojure,我也使用常规 Java 代码完成了此操作,但仍然遇到相同的错误。

理想情况下,我希望对自定义类加载器有所帮助。我最初的想法是我可以创建类加载器,将 jar 的文件路径/url 添加到类加载器中,然后我可以启动我的代码。但显然发生了一些奇怪的事情。

  1. 我有一个动态加载 4-5 个辅助 jar 文件的 jar 文件。它建立在一个简单的 URLClassLoader 之上。我想这样做是因为我可以让用户单击一个 jar 文件并启动应用程序。所以有一个项目是用户必须担心的。

  2. 通过单击此 jar 文件,应用程序从文件系统加载 jar 文件。例如,应用程序加载 swt.jar(Eclipse 的小部件工具包)和其他一些 jars。

3(但不用担心),我的应用程序是基于 Clojure(动态编程语言)构建的,第一个启动的应用程序是这个 Clojure 脚本。我的大部分应用程序都在 clojure 脚本中。

4. 1-3 以内的一切都可以正常工作。应用程序加载和 clojure 脚本运行,SWT GUI 应用程序运行等。

  1. 这是不起作用的部分。

  2. 我有一个现有的 java 库,称之为 my-swt-gui.jar。那也是一个 swt 应用程序。它基本上已经构建了另一个 gui 应用程序。我正在尝试从我当前的 clojure/swt 应用程序加载窗口。由于某种原因,面向 JAVA 的库无法识别 SWT,并且出现 noclassdef 错误。

这就是奇怪之处。我将确定我认为可能存在异常的地方。

Entitis:A. 面向 java 的类加载器。在 java 类加载器中,我启动了 clojure 应用程序。SWT 和其他 jar 文件使用这个类加载器加载。B. 节实体调用的面向 Clojure 的代码 clojure 代码是一个基于 swt 的 GUI 应用程序。B 工作正常。C. 包含另一个 GUI 窗口的 Java 代码。出于某种原因,这个库不会加载,我得到了错误,noclassdef。

注意:我知道 SWT 类实际上在类路径中,否则我会得到 NoClassFound 异常。我没有得到那个例外。其他事情正在发生。

注意:SWT 包含 win32 dll 是否也是一个问题?也许第一次访问win32 dll jar可以,但是使用java代码它不起作用?但这很奇怪。为什么 SWT 会起作用,然后又不起作用?

我无法向您展示所有代码,希望可以向您展示相关的部分。

这是主要的类加载器代码:


这就是我尝试加载 java swt 窗口的方式。我试图打印出尽可能多的关于类加载器并更改为不同的类加载器。

公共静态最终无效createPDFWindowShell(IStartService服务,最终对象外壳,最终对象globalClassLoader)抛出异常{

}


这是错误:

-

0 投票
1 回答
294 浏览

function - Clojure 函数从流锁中读取

我有一个函数,它从称为(get-next-indicator 流指示器)的输入流中读取一个标记并返回它。我正在尝试使用它来构建地图。

但是,当我运行它时,它会锁定。如果我删除 get-next-indicator 函数之一,它确实有效。这两个函数是否尝试同时读取流是这样的。这是什么原因造成的?

0 投票
11 回答
5082 浏览

vim - 如何在 vim 上设置 REPL?

我已经安装了 vimclojure 以便更容易地开始学习 clojure。但是,我无法在 vim 中设置 REPL。这本质上是因为我无法在 vim 中编写 maplocalleader(?)

根据 vimclojure/doc/clojure.txt 中的文档,我将以下内容放入我的 .vimrc 中以启动 REPL -

但是输入“sr”并不会启动 REPL。

提前致谢。

0 投票
3 回答
1330 浏览

ruby - 部署 Compojure/Sinatra 应用程序

部署 compojure/sinatra 应用程序的首选方式是什么?我在主机上运行了多个站点,因此无法在端口 80 上运行 jetty/mongrel。我应该如何处理在同一主机上运行的多个站点/应用程序?

0 投票
1 回答
154 浏览

clojure - 获取结构中的字段列表

我如何找到结构具有哪些字段?例如,如果我有以下内容:

我如何从 a 中获取 (:data :left :right) 的列表、集合或向量?我试过了

但这没有给出看起来正确的方法。

0 投票
3 回答
2286 浏览

clojure - Clojure 宏问题

我正在尝试创建一个函数来创建一个以另一个结构为基础的新基础,作为开始,我尝试制作一个宏来创建一个与旧结构具有相同字段的新结构。我认为应该执行此操作的宏如下,但它给出了以下错误:

宏:

使用示例:

在这种情况下,所需的输出将是

0 投票
1 回答
999 浏览

java - Clojure/Java Mandelbrot 分形绘图

我正在尝试将此算法移植到clojure。

我的代码是

乘法、加法和 abs 函数正在正常工作。我用计算器测试过它们。但是对于以下值:

我正在使用我在网上找到的另一个 java 小程序检查正确的迭代次数。它似乎正在工作,因为它产生了正确的输出。其迭代函数为

谁能发现我的错误?