这个问题的长期和短期是哪些GUI工具包创建了非常简单的UI并且易于使用Clojure?以下是进一步细节以缩小我的问题范围.
我想创建非常简单的GUI应用程序,这些应用程序将在Windows上运行,而无需投入巨大的GUI设计工作.
例如,我们的人事部门从我们的供应商那里获得了许多订户的保险单,并希望根据当地保险申请认为订户的情况来审计该信息.
我想在Clojure中编写这些应用程序,并利用简单的GUI包.
哪个是最简单的工具,可以与Clojure一起使用来创建原始UI?通过原始UI我的意思是像旧的Windows 3.1(16位)模式对话框.
为什么以下不起作用?这就是它抛出异常的原因?:
(comment
Replicate a Sequence
http://www.4clojure.com/problem/33
(= (__ [1 2 3] 2) '(1 1 2 2 3 3))
)
Run Code Online (Sandbox Code Playgroud)
用另一个字符串替换url,似乎没问题.
(comment
Replicate a Sequence
replace the url and all is well. why
(= (__ [1 2 3] 2) '(1 1 2 2 3 3))
)
Run Code Online (Sandbox Code Playgroud) 在Python中,您可以将列表或元组传递给函数,并让函数解包参数.我怎么能在Clojure中做到这一点?这是一些示例Python代码:
def f (a, b, c, *d):
print "a: ", a
print "b: ", b
print "c: ", c
print "d: ", d
f (1, 2, 3, 4, 5, 6)
print
v = (4, 5, 6)
f(1, 2, 3, *v)
Run Code Online (Sandbox Code Playgroud)
结果:
a: 1
b: 2
c: 3
d: (4, 5, 6)
a: 1
b: 2
c: 3
d: (4, 5, 6)
Run Code Online (Sandbox Code Playgroud)
在我的clojure代码中:
(defn f [a b c & d]
(println "a: " a)
(println "b: " b)
(println "c: " …
Run Code Online (Sandbox Code Playgroud) 我试图在不同的命名空间中定义动态var.Lobos文档指出:
默认情况下,所有迁移都保存在lobos.migrations命名空间中.它将通过迁移命令自动加载,因此无需自行加载.因此,要使用另一个名称空间,您必须更改lobos.migration/migrations-namespace动态变量.
我无法弄清楚如何在我的新命名空间中设置动态变量.
我可以在repl via(ns`lopos.migration)中执行此操作,但是从我自己的ns运行此cmd
(def ^:dynamic lobos.migration/*migrations-namespace* 'gb.install.migrations)
Run Code Online (Sandbox Code Playgroud)
收益率Can't create defs outside of current ns
.
我怎样才能解决这个问题?
我在Linux上使用VT100终端仿真器.在bash中,向上和向下箭头滚动执行最后的命令; 他们按预期工作.
在Python命令行解释器中不解释上一个(向上箭头)和下一个(向下箭头)命令.我需要什么样的键映射来完成这项工作?
谢谢.
我有一个Clojure"主"应用程序依赖于几个Clojure库,其中两个是我的.编译阶段,无论是编译还是运行uberjar都需要很长时间.它大约至少一分钟或更长时间.我的图书馆和主图都不是很大.
我的库和主project.clj文件包含
:aot [bene-cmp.core]
:omit-source true
Run Code Online (Sandbox Code Playgroud)
指令.
如果有的话,我可以做些什么来加快构建过程?
这是三个project.clj文件.project.clj主要
;$Log$
;
(defproject bene-cmp "1.0.0-SNAPSHOT"
:description "This is the main benetrak/GIC comparison program."
:dependencies [[org.clojure/clojure "1.3.0"]
[org.clojure/tools.cli "0.1.0"]
[clojure-csv/clojure-csv "1.2.4"]
[seesaw "1.4.0"]
[bene-csv "1.0.0-SNAPSHOT"]
[util "1.0.0-SNAPSHOT"]]
:aot [bene-cmp.core]
:omit-source true
:main bene-cmp.core)
Run Code Online (Sandbox Code Playgroud)
project.clj库1
(defproject util "1.0.0-SNAPSHOT"
;$Log: project.clj,v $
;Revision 1.3 2012/04/04 18:24:36 cvsuser
;Take II on comments. (comment ) does not work.
;
;Revision 1.2 2012/04/04 18:20:54 cvsuser
;New library for Clojure. Add CVS comments.
:description "A general purposes Clojure …
Run Code Online (Sandbox Code Playgroud) 我无法理解以下声明的含义.这个声明标准吗?
double* (*p[3]) (void* (*)());
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我理解这个声明的含义吗?
如何确定文件是否为空?该文件由在Windows平台上运行的C程序打开.我想以追加模式打开文件,如果为空,首先打印一个标题.
// Open CSV & write header
report_csv = fopen("SNR.csv", "a+");
if (!report_csv) {
fprintf(stderr, "Unable to open CSV output file...");
return -1;
}
if (!ftell(report_csv)) {
fprintf(report_csv, "Column A;Column B;Column C\n");
}
// ... print data to file
fclose(report_csv);
Run Code Online (Sandbox Code Playgroud)
ftell
如果文件不为空,我希望返回当前文件大小,这是因为上面的代码是循环的.
但是,ftell
始终返回0
并且标题被多次打印.
我知道我可以fopen
将其与r
和使用fseek
/ ftell
/ fclose
,然后fopen
再次用a+
,但我认为这是可能做到这一点而无需打开和多次关闭文件.
除了loop .. recur之外,使用什么是最好的Clojure构造,以便在遍历序列序列(sos)时,如果找到结果,处理可以停止?
以下是详细信息:
我有一个懒惰的序列从clojure-csv,一个sos返回.
在sos中的每个序列中的给定位置(索引)处存在值.
我一直在每个序列中查看该位置,直到找到该值或达到sos的结尾.
如果找到该值,我想停止处理sos.
我唯一能想到的是使用for with和when来保留匹配,但序列处理不会停止,或者使用过滤器.
但是,我相信我可以使用更好的东西,但我会被困在那将是什么.
谢谢.
为什么read_rest_of_csv
下面需要括号?
let read_rest_of_csv() =
csv_data.Add(csv_fileH.ReadFields()) |> ignore
not csv_fileH.EndOfData
while read_rest_of_csv() do ignore None
Run Code Online (Sandbox Code Playgroud)
如果没有括号,循环将不会终止.
open System
open System.Threading
open System.Collections.Generic
open System.Linq
open System.Text
open System.Threading.Tasks
open System.IO
open Microsoft.VisualBasic.FileIO
[<EntryPoint>]
let main argv =
let csv_fileH = new TextFieldParser("test1.csv")
csv_fileH.TextFieldType = FieldType.Delimited |> ignore
let x = csv_fileH.SetDelimiters(",")
let csv_data = new List<string[]>()
let eod = csv_fileH.EndOfData
if not eod then
let column_headings = csv_fileH.ReadFields()
csv_data.Add(column_headings) |> ignore
let read_rest_of_csv =
csv_data.Add(csv_fileH.ReadFields()) |> ignore
not csv_fileH.EndOfData …
Run Code Online (Sandbox Code Playgroud)