我可以在repl中读取这样的一些数据.对于一个真正的程序,我计划以let特殊形式分配.
(def x1 (line-seq (BufferedReader. (StringReader. x1))))
Run Code Online (Sandbox Code Playgroud)
如果我输入5 5,则x1被绑定("5 5")
我想将一个元素的列表转换为两个整数的列表.我怎样才能做到这一点?我一直在玩解析空格上的字符串,但是在执行转换为整数时遇到了问题.
尝试从Clojure填充Java类时,我收到"找不到匹配的ctor"错误.
我想从Clojure填充这个类.
import java.util.Date;
public class Account {
Account() { acct_num = 0;
trans_type = 'U';
trans_amt = 0.00;
cur_bal = 0.00;
last_update = null;
}
public int acct_num = 0;
public char trans_type;
public double trans_amt = 0.00;
public double cur_bal = 0.00;
public Date last_update;
}
Run Code Online (Sandbox Code Playgroud)
我可以导入这个类:
ba2-app=> (ns ba2-app (:import Account))
Account
Run Code Online (Sandbox Code Playgroud)
但是当我去填充它时,我收到这个错误:
ba2-app=> (:use java.util.Date)
nil
ba2-app=> (Account. 1000 \C 100.00 0.00 (java.util.Date. "12/21/2011"))
java.lang.IllegalArgumentException: No matching ctor found for class Account (NO_SOURCE_FILE:9)
Run Code Online (Sandbox Code Playgroud)
我遵循这些建议来使用我的Clojure代码构建Java类.这些建议非常有用,因为我现在可以构建Java类了. …
这个问题的关键是要清除对Clojure project.clj依赖关系的混淆以及如何指定本地依赖关系.
我在一棵树上有一堆Clojure lein项目
./projects/clojure/bene-csv # A csv parsing library
./projects/clojure/bene-cmp # A main program that depends on bene-csv
Run Code Online (Sandbox Code Playgroud)
我在编辑bene-cmp的project.clj文件.我想依赖./projects/clojure/bene-csv/bene-csv-1.0.0-SN.jar.
我是否使用简单的目录表示法来指定路径或其他内容
谢谢.
我可以在bene-csv项目目录中输入lein install,并在bene-cmp项目目录的project.clj文件中使用这些project.clj条目,在项目中包含bene-csv:
(defproject bene-cmp "1.0.0-SN"
:description "This is the main benetrak/GIC comparison program."
:dependencies [[org.clojure/clojure "1.3.0"]
[clojure-csv/clojure-csv "1.3.2"]
[bene-csv "1.0.0-SN"]])
Run Code Online (Sandbox Code Playgroud)
但是,我仍在试图弄清楚路径是什么,并且会欣赏任何指针或帮助.谢谢.
我正在尝试阅读整个网页并将其分配给变量,但我很难做到这一点.该变量似乎只能保存页面源的前512行左右.
我尝试使用readlines()将源的所有行打印到屏幕上,这给了我完整的源代码,但我需要能够用正则表达式解析它,所以我需要以某种方式将它存储在变量中.救命?
data = urllib2.urlopen(url)
print data
Run Code Online (Sandbox Code Playgroud)
只给了我1/3的来源.
data = urllib2.urlopen(url)
for lines in data.readlines()
print lines
Run Code Online (Sandbox Code Playgroud)
这给了我整个来源.
就像我说的,我需要能够用正则表达式解析字符串,但我需要的部分不是在我能够存储在变量中的前1/3中.
我有两个问题.首先,我需要做些什么来获得以下代码进行编译,以及Clojure 1.4读者文字是什么让我无法从宏中获取?
我理解我用本地data_readers.clj文件覆盖了阅读器,但是在哪里可以比我在Clojure 1.4发行说明中更详细地阅读这些阅读器文字呢?
这是编译错误的代码.
java.lang.RuntimeException: No reader function for tag ?=,
Run Code Online (Sandbox Code Playgroud)
(defproject repl-test "0.0.1-SNAPSHOT"
:description "TODO: add summary of your project"
:dependencies [[org.clojure/clojure "1.4.0"]
[org.clojure/clojure-contrib "1.2.0"]
[clojure-csv/clojure-csv "1.3.2"]
[org.clojure/tools.cli "0.1.0"]
[util "1.0.2-SNAPSHOT"]
[clj-http "0.1.3"]]
:aot [repl-test.core]
:main repl-test.core)
Run Code Online (Sandbox Code Playgroud)
{
?= repl-test.core/debug-print
str repl-test.core/expand-sexp
}
Run Code Online (Sandbox Code Playgroud)
data_readers.clj应该去别的地方吗?如果是的话,在哪里?
(ns repl-test.core
(:gen-class)
(:require [clojure.string :as str])
(:require [util.core :as utl])
(:use clojure-csv.core))
(defn debug-print
"Gauche debug print"
[x]
`(let [res# ~x]
(println "?=" res#)
res#))
(defn expand-sexp
"Expand S-exp in …Run Code Online (Sandbox Code Playgroud) 我有两个进程,每个进程写大数据缓冲区,我想控制同步这些进程的写入到一个文件.
处理1写入缓冲器A包括(A1,A2,A3)和处理2写入缓冲器B,包括(B1,B2,B3).当我们使用write()系统调用将这些缓冲区写入磁盘到同一个文件(整个缓冲区一次:)时write(fd, A, sizeof(A)),文件架构如何?
我问这个是因为系统调用是原子的.如果我们写的数据缓冲区太大会发生什么.它是否像常规磁盘文件的管道?
我在Ubuntu 1.04上使用lein 1.6.2,并创建了一个裸项目.我无法弄清楚为什么我得到了
"没有命名空间:在project.clj中列出的编译."
当我进入lien编译时出错.
project.clj
(defproject amr_db "1.0.0-SNAPSHOT"
:description "FIXME: write description"
:dependencies [[org.clojure/clojure "1.3.0"]
[korma "0.2.1"]])
Run Code Online (Sandbox Code Playgroud)
core.clj(到目前为止)
(ns amr_db.core
(:gen-class))
Run Code Online (Sandbox Code Playgroud)
如何清除警告?
使用Clojure(和其他Lisp方言),您可以修改运行代码.那么,在运行时修改函数时,该更改是否可用于多个线程?
我试图找出它在并发设置中如何工作:如果有几个线程正在使用函数foo,当我重新定义(比如使用defn)函数foo时会发生什么?
必须进行一些同步:何时以及如何进行这种同步以及它的成本是多少?
在JVM上说,是使用volatile引用引用的函数吗?如果是这样,是否意味着每次都有"功能查找",那么必须支付volatile费用?
当lein设置项目时,将创建core.clj文件以及其他目录和文件。我想知道是否可以将core.clj的内容拆分到另一个源文件下
../myproj/src/myproj/
如果是这样,如何从core.clj访问该数据。