问题标签 [clojureclr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
443 浏览

clojure - 如何在 Clojure-CLR 1.4.1 中使用 .NET WebClient 调用

在问题中:Idiomatic way to write .NET interop function我发现以下代码段:

当我启动 REPL 并输入:

(导入'(System.IO StreamReader))

一切正常。但是当我输入时:

(导入'(System.Net HttpWebRequest))

(我不需要 NetworkCredential 功能)我得到:

哦,我以前做过:

那我还需要做什么?谢谢你的帮助。

0 投票
1 回答
152 浏览

clojure - 从 Clojure/ClojureCLR 中的 Java/C# 子类调用非虚拟保护方法

在 Clojure 中使用 gen-class 创建子类时,您可以通过暴露方法公开受保护的虚拟(非最终)方法,但是它是通过覆盖实现的,这对非虚拟(最终)方法不起作用。

是通过反射以这种方式调用受保护方法的唯一方法吗?

reify 或 proxy 能比 gen-class 做得更好吗?

0 投票
1 回答
90 浏览

clojure - ClojureCLR 强制错误

我在 ClojureCLR REPL 中遇到了一个编译器异常,用于基本强制:

抱歉,如果这是一个新问题,但行为与 Java 互操作不同!

.NET 的语法是否不同?

0 投票
2 回答
1522 浏览

c# - 是否可以在 Xamarin 中将 Clojure CLR 与 C# 一起使用?

我喜欢 Clojure。这是迄今为止我最喜欢的语言。

我刚刚发现了 Xamarin,它可以让你拥有跨平台的应用程序,充分利用本机库。与它一起使用的语言是 C#。

现在我想知道是否有任何方法可以在 Clojure (CLR) 中而不是 C# 中对我的大多数 Xamarin 应用程序进行编程。

0 投票
1 回答
230 浏览

clojure - Clojure CLR - 实现包含属性的接口

我正在尝试实现一个具有属性但似乎无法使其正常工作的接口,而且我还没有通过 Google 找到任何相关示例(还)。我确定我在这里做错了,但不知道如何解决。

IsReusable 是一个属性,我不知道如何告诉 reify 它不是一个传统的函数。

好的,我为 IsReusable 提供“this”

我也尝试过代理,但我得到了类似的结果。

我还尝试将 IsReusable 命名为 get_IsReusable ,这实际上并没有什么不同,并且我得到了与上面相同的编译器错误。

我也试过 deftype 但我得到一个完全不同的错误:

编译器错误:

更新:

为 deftype 发布的代码有效,我无法重现上面发布的错误。我现在不知道我当时做错了什么。

0 投票
1 回答
926 浏览

clojure - 将惰性行序列写入 ClojureClr 中的文件而无需反射

我有一大堆懒​​惰的行要写入文件。在 C# 中,我会使用System.IO.File/WriteAllLineswhich 具有重载,其中行是string[]or 或IEnumerable<string>.

我想在运行时不使用反射来做到这一点。

但是,我收到了这个反射警告。

反射警告,... - 无法解决对 WriteAllLines 的调用。

一般来说,出于性能原因,我需要知道何时需要反射,但我不关心这个特定的方法调用。我愿意编写更多代码以使警告消失,但不愿意将所有数据作为数组强制存储到内存中。有什么建议么?

0 投票
1 回答
467 浏览

c# - 使用 clojure-clr 作为脚本解释器

我在 C# 中设置了一个非常简单的 clojure 解释器,它加载一个 .clj 文件并使函数可在 AutoCAD 中使用。这很好用,但我想用更多的结构来设置它,这样我就可以“模块化”源文件,而不是拥有一个很棒的主文件(这是我目前可以让它工作的唯一方法) .

我已经尝试了各种方法,例如脚本中的导入、使用、需要加载和加载文件,并且还在 C# 脚本代码中加载多个文件,但我宁愿有一个主脚本,它在加载到所需的其他文件中时引用口译员。

这是我目前用来加载主文件的 C# 片段,

这是我想在运行时加载的 2 个文件的示例,主文件将引用所有其他文件,

以及我想引用的那个,目前与主文件位于同一文件夹中,但希望在某个阶段将它们组织到子文件夹中。

关于解决此问题的最佳方法的任何指导?谢谢。

编辑:我已经对主文件进行了以下更改,但我仍然愿意以更好的方式来执行此操作,例如 - 如何设置加载路径以匹配 main.clj 文件夹。这是更改后的文件以供参考:

0 投票
1 回答
174 浏览

.net - 确定远程设备端点 UDP Clojure CLR

尝试在 Clojure CLR 中执行等效的 c# 代码

我在 Clojure 中尝试过的不起作用:

它只显示 0.0.0.0:0 我认为 ref 不起作用,但也不确定提示/强制转换语法。

我在这里查看了有关参考https://github.com/richhickey/clojure-clr/wiki/CLR-Interop的信息 以及这里关于指定类型的信息:https ://github.com/clojure/clojure-clr/wiki /指定类型

0 投票
1 回答
144 浏览

clojure - 在 ClojureClr 中找不到 clojure.set

我正在使用ClojureClr 1.6.0并且我正在尝试使用clojure.set但我找不到它:

当我尝试使用它时,我得到:

我试图加载它

但还是找不到。

0 投票
1 回答
57 浏览

clojure - ClojureClr 源宏:找不到标准库函数的源

我正在尝试打印函数的源代码,但我得到了Source not found

我通过运行 Clojure.Main.exe 使用 ClojureClr 1.6.0。我没有任何 clojure.clj源文件。我错过了什么?

编辑:

它在这里说文件是clojure/core.clj

该文件夹应该在某个特定路径中吗?相对于repl还是什么?