我爱Clojure。这是迄今为止我最喜欢的语言。
我刚刚找到了Xamarin,它允许您拥有跨平台的应用程序,充分利用本机库。与之一起使用的语言是C#。
现在我想知道是否有任何方法可以在Clojure(CLR)中编写我的大部分Xamarin应用程序,而不是C#。
答案 0 :(得分:2)
因此,Clojure CLR将允许您使用它可以加载的任何库。例如,我已经将Oracle.DataAccess库和NLog库加载到Clojure CLR中,因此理论上可以以相同的方式加载Xamarin库:
;;; not sure which library you want to include, using this as a placeholder
(assembly-load-from "C:/Path/To/Xamarin.Core.dll")
话虽如此,Xamarin本身似乎也是一个IDE,并且在他们自己的专有库和构建工具之上构建了一组构建工具,因此可能无法完全集成这两者。另外,我认为Xamarin完全使用C#,因此在Clojure中编码可能是不可能的......直接。
你可以做的是在Clojure CLR中创建一些库,然后将它们编译成DLL,然后你可以链接到DLL,这样你就可以在Clojure中构建大量的逻辑,然后创建一些简单的C#包装器。 Xamarin app消耗。
我很想听听你的尝试,以及你是否成功做到这一点。
祝你好运!
答案 1 :(得分:0)
在Android中可能是肯定的,但在iOS的情况下我会说它不太可能,因为后者是一个平台,它对生成的代码,反射等有很多限制。而动态类型的Clojure很有可能受到影响。
老实说,.NET世界中的Clojure更适合F#(也是功能,默认不可变等),这是一种刚被Xamarin官方采用的语言(意思是你可以在Android中使用它) iOS和Mac)。
它也是静态类型(与Clojure相反)所以这可能意味着它也更快。试一试!