小编mur*_*a52的帖子

在clojure中递归

我正在尝试使这个示例程序工作

(defn foo
  ([x] (foo x []))
  ([x current]
     (when (> x 0)
       (recur (dec x) (conj current x)))))
Run Code Online (Sandbox Code Playgroud)

当我调用这个函数(foo 5)时,我应该得到[1 2 3 4 5],但它只返回nil.我究竟做错了什么?

谢谢,穆尔塔扎

clojure

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

递归调用导致溢出

我正在尝试解决项目euler第二个问题.为什么下面的代码导致堆栈溢出?我正在使用recur所以它不应该存储堆栈上的所有递归调用.

(defn sum
  [[a b]]
  [b (+ a b)])

(defn fib-r
  ([n] (fib-r n 0 [0 1]))
  ([n s [a b]]
     (if (= n 0)
       s
       (let [[c d] (sum [a b])
             e (if (even? c) c 0)
             f (+ s e)]
         (recur (dec n) f [c d])))))

(fib-r 4000000)
Run Code Online (Sandbox Code Playgroud)

clojure

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

在 repl 中重新加载 ns

假设我有一个包含 ns - (ns abc.a) 的代码文件。现在我开始我的 repl 并在 ns- (use-ns 'abc.a) 中。

现在,如果我更改文件中的任何代码,如何重新加载 repl 中的 ns?

谢谢,穆尔塔扎

emacs clojure

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

db:migrate用于现有模型时出错

我在rake db:migrate中面临一个问题.当我使用scaffold创建模型,运行db:migrate然后使用scaffold d Posts删除模型时,问题就出现了.

现在我再次使用scaffold g创建模型,并运行db:migrate.由于用户表已经存在,它给了我一个错误.我该如何解决这个问题?

murtaza@murtaza-dev:~/workspace/rails/base$ rake db:migrate
==  CreatePosts: migrating ====================================================
-- create_table(:posts) rake aborted! An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "posts" already exists: CREATE TABLE "posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "content" text, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 

Tasks: TOP => db:migrate (See full trace by running task with --trace) murtaza@murtaza-dev:~/workspace/rails/base$ rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

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

由于重复性错误,leiningen构建失败

我和lein2工作了一段时间,它一直很好.然而今天麻烦开始了,无论我用lein2键入哪个命令,它都会给我以下错误.我尝试删除〜/ .m2,在这种情况下,它再次下载deps但最终给了我同样的错误.

我也试过删除并再次下载lein2.以下是它给出的错误 -

检查:依赖关系和:错别字的存储库.指定的jar可能不在任何存储库中.如果是这样,请参阅http://j.mp/repeatability下的"Free-floating Jars" 无法解析依赖项

无论项目或文件夹如何,都会发生错误.下面是我的〜/ .lein/profiles.clj -

{:user {:plugins [[lein-immutant "0.8.1"]
                  [lein-difftest "1.3.7"]
                  [lein-marginalia "0.7.1"]
                  [lein-pprint "1.1.1"]
                  [lein-swank "1.4.4"]
                  [lein-ring "0.7.5"]
                  [lein-cljsbuild "0.2.7"]
                  [lein-eclipse "1.0.0"]
                  [lein-git-deps "0.0.1-SNAPSHOT"]
                  [lein-outdated "0.1.0"]
                  [lein-noir "1.2.1"]
                  [lein-beanstalk "0.2.2"]
                  [lein-cloudbees "1.0.0"]
                  [lein-pedantic "0.0.3"]
                  [clj-ns-browser "1.3.0"]
                  [lein-ritz "0.4.2"]
                  [lein-midje "2.0.0-SNAPSHOT"]]}}
Run Code Online (Sandbox Code Playgroud)

下面是project.clj文件 -

(defproject hs-2 "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [net.cgrand/moustache "1.1.0" :exclusions [org.clojure/clojure]]
                 [enlive "1.0.1" :exclusions [org.clojure/clojure]]
                 [ring "1.1.5"]
                 [clj-time …
Run Code Online (Sandbox Code Playgroud)

clojure leiningen

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

如何编写宏以将元数据添加到函数

鉴于以下功能 -

(defn ^:export hi [] (+ 2 3))
Run Code Online (Sandbox Code Playgroud)

我想写一个宏来执行此操作 -

(defex hi [] (+ 2 3))
Run Code Online (Sandbox Code Playgroud)

该宏defex只是在函数前面添加 ^:export 元数据。我怎么做?

编辑 - 我检查了 repl (meta hi) 上的函数,它给出了 nil。所以很可能我不想添加元数据,而是以上述方式定义一个函数。

谢谢,穆尔塔扎

clojure

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

sublime linter like emacs包(语法错误实时突出显示)

在Sublime Text 2中有一个名为sublime linter的包,它会突出显示在您键入时出现语法错误的任何部分.

在emacs中有任何类似的包吗?

谢谢穆尔塔扎

emacs

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

如何写一个递归fn来评估下面的结构

我有一个结构,其中第一个元素是一个函数,其余的args到fn.现在每个arg可以反过来成为具有类似charectristic的向量.

[+ 1 2 3 [- 4 3] 5 6 [- 9 8 [+ 5 6]] 4 5]

如何在给定任何此类向量的情况下编写递归fn来计算结果?还有什么方法可以评估它,因为如果向量可以被()替换,结构将是一个有效的clojure形式?

clojure

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

如何在迭代中访问seq中的两个相邻元素

我有一个seq (2 3 1 4).

我想迭代它,并且当下一个元素更小时,prev元素将替换两个元素另一个seq.'( - 4 1).

所以f('(2 3 1 4))=>(2( - 3 1)4).我怎么写呢?

基本上 -

1)我想同时访问seq中的两个相邻元素.2)编辑并返回该点的新seq.3)继续处理新返回的seq.

一般来说,实现上述3的机制是什么.(map,reduce都让我一次只能访问一个elem.)

clojure

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

mac上的〜/ bin vs/usr/local/bin之间的区别

我有一些我想在命令行上运行的exec脚本.

哪个文件夹我应该把他们~/bin还是/usr/local/bin

这两个文件夹有什么区别?

哪个是什么时候用的?

macos command-line

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

标签 统计

clojure ×7

emacs ×2

command-line ×1

leiningen ×1

macos ×1

ruby-on-rails ×1