小编Ale*_*ler的帖子

如何为特定模式设置Emacs填充列?

我想fill-column在Clojure模式下将Emacs 设置为120,但是保留默认值(80).

我怎么能在我的.emacs文件中这样做?

谢谢.

emacs clojure autofill

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

clojure.spec:序列规范的`alt` vs`或`

我正在关注clojure.spec的指南(http://clojure.org/guides/spec).我被之间的区别感到困惑alt,并or进行序列规范.

对我来说,以下两个例子同样有效.那两者之间的区别是什么?

; Use `alt`
(s/def ::config (s/* (s/cat :prop string?
                        :val (s/alt :s string? :b boolean?))))
(s/explain ::config ["-server" "foo" "-verbose" true "-user" 13])

; Use `or`
(s/def ::config (s/* (s/cat :prop string?
                        :val (s/or :s string? :b boolean?))))
(s/explain ::config ["-server" "foo" "-verbose" true "-user" 13])
Run Code Online (Sandbox Code Playgroud)

clojure

16
推荐指数
2
解决办法
1821
查看次数

如何在循环中运行命令,直到我在stdout中看到一些字符串?

我确定有一些带有perl,ruby,bash的简单单线程,无论是什么让我在循环中运行命令,直到我在stdout中观察到一些字符串,然后停止.理想情况下,我也想捕获stdout,但如果要进入控制台,这可能就足够了.

目前所讨论的特定环境是RedHat Linux,但有时在Mac上也需要同样的东西.所以,通用和*nixy是最好的.不关心Windows - 大概是一个*nixy的东西可以在cygwin下工作.

更新:请注意,通过"观察一些字符串"我的意思是"stdout包含一些字符串"而不是"stdout IS some string".

linux bash shell

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

轻松尝试和测试Lisp语法的方法?

Clojure向我介绍了Lisp语法的概念,我很感兴趣,但是让Clojure repl设置并在不同的机器上使用它是一件痛苦的事.还有哪些其他资源可用于实际动态测试和使用Lisp语法?

我想象的东西就像一个网站,你可以输入基本的代码,或浏览器插件,甚至只是一个独立的应用程序,引导你通过Lisp(在Linux/Ubuntu上运行的东西).

无法找到类似的东西以简单/可访问的方式启动我.

lisp clojure

15
推荐指数
4
解决办法
8581
查看次数

功能编程和类型系统

我一直在学习各种函数式语言,包括Haskell,Scala和Clojure.Haskell有一个非常严格且定义良好的静态类型系统.Scala也是静态类型的.另一方面,Clojure是动态类型的.

所以我的问题是

  1. 类型系统在函数式语言中扮演什么角色?
  2. 语言是否有必要使用类型系统才能使其正常运行?
  3. 语言的"功能"级别与语言类型系统的类型有何关联?

type-systems programming-languages functional-programming clojure

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

Java Covariants

public class CovariantTest {
    public A getObj() {
        return new A();
    }

    public static void main(String[] args) {
        CovariantTest c = new SubCovariantTest();
        System.out.println(c.getObj().x);
    }
}

class SubCovariantTest extends CovariantTest {
    public B getObj() {
        return new B();
    }
}

class A {
    int x = 5;
}

class B extends A {
    int x = 6;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在编译和运行时打印5.它使用过度返回方法的协变返回.

为什么它会打印5而不是6,因为它在SubCovariantTest类中执行overRidden方法getObj.

有人可以对此有所了解.谢谢.

java

14
推荐指数
4
解决办法
885
查看次数

使用Maven创建最基本的Scala项目?

我使用Maven 3创建一个新的Scala项目.据我所知,使用Maven创建新项目的方法是:

mvn archetype:generate
Run Code Online (Sandbox Code Playgroud)

也许我错过了一些东西,但我找不到一个提供最简单的Scala项目的选项(例如lein new app ...Clojure 收到的那个).这里有什么帮助?

scala clojure maven-3 maven

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

有没有办法让ClassLoader加载哪些类?

我正在尝试为旧框架实现一些单元测试.我试图模拟出数据库层.不幸的是,我们的框架有点陈旧,并没有完全采用最佳实践,因此没有明确的关注点分离.我有点担心试图模拟数据库层可能会使JVM加载大量甚至无法使用的类.

我不太了解类加载器,所以这可能不是问题.有没有办法在特定ClassLoader加载的所有类中达到峰值,以证明引擎盖下发生了什么?

java unit-testing jvm classloader

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

如何在Clojure中创建一个持续运行的后台进程?

如何在Clojure中创建一个持续运行的后台进程?使用"未来"的循环永远不会以正确的方式结束?

concurrency clojure

13
推荐指数
2
解决办法
4082
查看次数

合并地图列表并将值组合到Clojure中的集合

作为FOO,我可以将什么功能放在最后?我玩哈希集(只对前两个值正确),conj和concat,但我知道我没有正确处理单元素与设置条件中的任何一个.

(defn mergeMatches [propertyMapList]
    "Take a list of maps and merges them combining values into a set"
    (reduce #(merge-with FOO %1 %2) {} propertyMapList))

(def in 
    (list
        {:a 1}
        {:a 2}
        {:a 3}
        {:b 4}
        {:b 5}
        {:b 6} ))

(def out
    { :a #{ 1 2 3}
      :b #{ 4 5 6} })

; this should return true
(= (mergeMatches in) out)
Run Code Online (Sandbox Code Playgroud)

处理这个问题最常用的方法是什么?

functional-programming clojure

12
推荐指数
2
解决办法
7074
查看次数