clojure是否像普通的lisp一样具有强大的"循环".
例如:
每次从序列中获取两个元素
Common Lisp:
(loop for (a b) on '(1 2 3 4) by #'cddr collect (cons a b))
Run Code Online (Sandbox Code Playgroud)
如何在Clojure中做到这一点?
两个文件
types.clj:
(ns test.types)
(defrecord Price [date price])
(defrecord ProductPrice [name prices])
Run Code Online (Sandbox Code Playgroud)
core.clj(没关系)
(ns test.core
(:use [test.types])
(:use [clojure.string :only (split)]))
(defn read-data [file]
(let [name (subs (.getName file) 0 4)]
(with-open [rdr (clojure.java.io/reader file)]
(doall (map #(apply ->Price (split % #"\t")) (drop 2 (line-seq rdr)))))))
Run Code Online (Sandbox Code Playgroud)
core.clj(java.lang.IllegalArgumentException:无法解析类名:ProductPrice)
(ns test.core
(:use [test.types])
(:use [clojure.string :only (split)]))
(defn read-data [file]
(let [name (subs (.getName file) 0 4)]
(with-open [rdr (clojure.java.io/reader file)]
(ProductPrice. name (doall (map #(apply ->Price (split % #"\t")) (drop 2 …Run Code Online (Sandbox Code Playgroud) 我正在为ios开发人员编写一个静态库.
如何构建一个在iOS上具有最大兼容性的静态库?换句话说,将来支持不同类型的项目.例如,3.0~版本,ARC /非ARC项目,xib/storyboard,模拟器/ iphone/ipad.
我应该考虑哪些最重要的事情?
有什么建议吗?谢谢!
我有两个不同的活动.第一个发射第二个.
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在第二个活动中,我调用System.exit(0).我认为第一个活动是由"页面堆栈"引起的.但我发现发生了两件事.
applicationContext.openFileOutput(fileName, Context.MODE_PRIVATE); 在那种情况下沙箱是否被清理干净?通过'返回键'或甚至android.os.Process.killProcess(android.os.Process.myPid())是沙盒中的文件保持正常退出.那么,System.exit(0)执行时实际发生了什么?
谢谢!
如何操纵记录?
我在哪里可以找到一些例子?
我想对记录做一个序列.例如:
(defrecord Point [x y])
Run Code Online (Sandbox Code Playgroud)
如何从'[[1 2] [3 4] [5 6]]'制作一系列分数?
如果数据存储在文件中:
1 2
3 4
5 6
Run Code Online (Sandbox Code Playgroud)
如何将这些读入记录?
(with-open [rdr (clojure.java.io/reader file)]
(doall (? (line-seq rdr))))))
Run Code Online (Sandbox Code Playgroud)
谢谢!
对于((1 2) (3 4) (5 6)),您可以使用loop for (a b) in '((1 2) (3 4) (5 6))每次获得a = 1,b = 2.
但是'(1 2 3 4),我试着loop for x on '(1 2 3 4) by #'cddr for a = (car x) for b = (cadr x)得到a = 1,b = 2.
有没有更好的方法来做这样的事情?
输入:
[['a', 2], ['b',1]] (sorted by value)
[['b', 2], ['c', 1]]
Run Code Online (Sandbox Code Playgroud)
输出:
[['b', 3], ['a', 2], ['c', 1]]
Run Code Online (Sandbox Code Playgroud)
任何pythonic方式?当然,在Python中!(最好是2.6倍)谢谢!
clojure ×3
android ×1
common-lisp ×1
ios ×1
kill-process ×1
lambda ×1
lisp ×1
objective-c ×1
python ×1
xcode ×1