标签: clojure

你如何在Java中更改CLASSPATH?

如何从Java进程中更改Java进程的CLASSPATH?


在你问我之前"你为什么要那样做?" 我马上解释一下.

当你运行Clojure REPL时,通常需要在你的CLASSPATH中加入更多的jar来加载Clojure源文件,我想这样做而不必重新启动Clojure本身(在Slime上使用它时这不是一个真正的选择)在Emacs上).

这就是原因,但我不希望这个问题被标记为奇怪的语言奇怪的编辑器,并被大多数可能有答案的Java开发人员所忽视.

java clojure classpath

59
推荐指数
1
解决办法
7万
查看次数

比较core.async和功能反应式编程(+ Rx)

在将Clojure的core.async与所谓的Reactive Extensions(Rx)和FRP进行比较时,我似乎有点困惑.他们似乎解决了类似的异步 - 长期问题,所以我想知道什么是主要差异,在什么情况下优先于另一个.有人可以解释一下吗?

编辑:为了鼓励更深入的答案,我想让问题更具体:

  1. Core.async允许我编写同步代码.但是据我所知,FRP只需要一级嵌套回调(处理逻辑的所有函数都作为参数传递给FRP API).这似乎两种方法都不需要回调金字塔.确实,在JS中我必须写function() {...}多次,但主要问题,嵌套回调,也在FRP中消失了.我做对了吗?

  2. " FRP通过控制流完善了信息的沟通"你能(某人)请给出更具体的解释吗?

  3. 我不能像通过频道那样绕过FRP的可观察端点吗?

总的来说,我理解历史上两种方法的来源,我在这两种方法中都尝试了很少的教程.然而,我似乎被差异的非显而易见性"瘫痪"了.是否有一些代码难以在其中一种中编写而使用另一种代码很容易?那架构原因是什么?

asynchronous clojure frp reactive-programming core.async

59
推荐指数
4
解决办法
7267
查看次数

如何在Apache中集成Clojure Web应用程序

注意

鉴于此OP大约两年前编写,而不是再次提出相同的问题,我想知道是否存在分步说明,以便我可以将Noir或其他Clojure Web应用程序集成到Apache中,无论是Jetty,Tomcat , 或者是其他东西.Django也存在类似的指令,我想我明白Python在Django的情况下是作为引擎而不是环形框架运行的,所以Clojure Web应用程序更复杂.

结束注释

我深深爱上了Clojure,而Compojure似乎是一个整洁的Web框架.

但是当我想将我的应用程序部署在像Tomcat这样的常规应用程序服务器上作为WAR时,它就崩溃了.我实际上必须为静态文件和资源编写自定义Ring处理程序,这些文件和资源可以在本地Jetty和Tomcat上运行,因为库存处理程序没有,我不得不手动将上下文根添加到任何地方.

令我感到非常惊讶的是,我必须编写所有这些代码来创建可以在Jetty和Tomcat上运行的最简单的Web应用程序.我只有三种可能的解释:

  1. 除了使用Jetty进行本地开发之外,没有人使用Clojure/Compojure,即在生产中
  2. 每个人都在没有上下文根的专用Jetty上部署Clojure/Compojure应用程序(LIke人们使用Node.js应用程序)
  3. 有一种非常简单的方法来规避我遇到的问题,我不知道

您认为以下哪一种情况?或者是别的什么?

编辑:

请注意,创建一个战争文件是Maven/Leiningen的明智之举,而不是我的意思.我想知道我必须编写如此多的代码来使Compojure与Tomcat一起工作,基本的东西,如静态文件服务和上下文根知识应该开箱即用.

deployment clojure war compojure

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

在Clojure中的目录中列出文件

如何在Clojure中的特定目录中的所有文件中创建列表?我是否必须求助于Java或者Clojure可以原生地处理这个问题吗?

java clojure

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

私人def in clojure/clojurescript

在Clojure和clojurescript中你可以拥有一个名为defn-的defn的私有版本,但你如何对def做同样的事情,因为def-似乎不包括在内?

clojure clojurescript

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

计算列表的移动平均值

本周末,我决定尝试一些Scala和Clojure.我精通面向对象的编程,因此Scala很容易学习语言,但想尝试函数式编程.这是它变得艰难的地方.

我似乎无法进入编写函数的模式.作为一名专业的功能程序员,您如何解决问题?

给定一个值列表和一个定义的求和周期,您将如何生成列表中简单移动平均值的新列表?

例如:给定列表values(2.0,4.0,7.0,6.0,3.0,8.0,12.0,9.0,4.0,1.0)和period4,函数应该返回:(0.0,0.0,0.0,4.75,5.0,6.0, 7.25,8.0,8.25,6.5)

在花了一天时间考虑它之后,我在Scala中想出的最好的是:

def simpleMovingAverage(values: List[Double], period: Int): List[Double] = {
  (for (i <- 1 to values.length)
    yield
    if (i < period) 0.00
    else values.slice(i - period, i).reduceLeft(_ + _) / period).toList
}
Run Code Online (Sandbox Code Playgroud)

我知道这是非常低效的,我宁愿做类似的事情:

where n < period: ma(n) = 0
where n = period: ma(n) = sum(value(1) to value(n)) / period
where n > period: man(n) = ma(n -1) - (value(n-period) / period) + (value(n) / period)
Run Code Online (Sandbox Code Playgroud)

现在,这将很容易以一种命令式的方式完成,但我不能为我的生活弄清楚如何在功能上表达.

functional-programming scala clojure

56
推荐指数
8
解决办法
4万
查看次数

在clojure中解析数字的最简单方法是什么?

我一直在使用java来解析数字,例如

(. Integer parseInt  numberString)
Run Code Online (Sandbox Code Playgroud)

是否有更多的clojuriffic方式可以处理整数和浮点数,并返回clojure数字?我并不特别担心这里的性能,我只想在一个文件中处理一堆空白分隔的数字,并以最简单的方式对它们做一些事情.

所以文件可能有如下行:

5  10  0.0002
4  12  0.003
Run Code Online (Sandbox Code Playgroud)

而且我希望能够将线条转换为数字向量.

clojure

54
推荐指数
9
解决办法
4万
查看次数

为什么Clojure命名为Clojure

为什么语言的名称是"Clojure"?

我用Google搜索了一下,在#clojure中问道.到目前为止,没有运气.

jvm clojure

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

如何通过Clojure interop访问静态内部Java类?

基本上我需要做的就是这个

FileChannel.MapMode.READ_ONLY
Run Code Online (Sandbox Code Playgroud)

我试着做的很明显

(.. FileChannel MapMode READ_ONLY)
Run Code Online (Sandbox Code Playgroud)

但最终会抛出异常

java.lang.NoSuchFieldException: MapMode
Run Code Online (Sandbox Code Playgroud)

甚至/interop文档中为访问静态字段指定的表示法也会产生相同的异常

(. (FileChannel/MapMode) READ_ONLY)
Run Code Online (Sandbox Code Playgroud)

java interop clojure

54
推荐指数
2
解决办法
7520
查看次数

突出显示vim中函数体中的参数

一些可以从IDE借来的东西.因此,我们的想法是在函数体内突出显示函数参数(以及可能的范围变量名).这是某些C的默认行为:

普通的vim突出显示

好吧,如果我把光标放在里面func我希望看到参数foobar突出显示更好地遵循算法逻辑.请注意,类似命名的fooin func2不会变亮.虽然这个奢侈品可以省略......

func hilighted

使用本地范围的变量,我还希望本地初始化变量highlit:

在里面突出显示<code>let</code>,<code>loop</code>,<code>for</code>,<code>doseq</code>绑定实例.</p>

<p>我的vimscript-fu并不那么强大; 我怀疑我们需要</p>

<ul>
<li>从光标下的函数定义中解析(非regexply?)参数.当然,这将是语言特定的.我的首要任务是Clojure.</li>
<li>定义语法区域以仅覆盖给定的函数/范围</li>
<li>提供所需的语法匹配</li>
</ul>

<p>作为一个函数,这可以映射到一个密钥(如果资源非常密集)或者<code>CursorMoved</code>如果不是那么慢.</p>

<p>好的,现在.有没有人写过这样的东西?vimscript大师是否知道如何真正开始编写这样的脚本?</p>

<p>很抱歉有轻微的offtopicness和糟糕的格式.随意编辑/格式化.或投票结束.</p> </div>
        <p>
          <a href=vim clojure

54
推荐指数
2
解决办法
2331
查看次数