2013-04-30 61 views
6

我喜歡Clojure。這是我最喜歡的語言。是否有可能在Xamarin中將Clojure CLR與C#一起使用?

我剛剛找到Xamarin,它可以讓你有跨平臺的應用程序,充分利用本地庫。與它一起使用的語言是C#。

現在我想知道是否有任何方法來編程Clojure(CLR)中的大部分Xamarin應用程序,而不是C#。

+1

Regular Clojure已經*是*跨平臺,並允許使用本地庫。你可以更具體地瞭解你想要達到的目標嗎?如果它只是跨平臺的原生圖形庫,那麼你可以看看LibloD的Clojure。 – mikera 2013-05-01 04:53:59

回答

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,然後你可以鏈接到它們,這樣你就可以在Clojure中構建大量的邏輯,然後創建一些簡單的C#包裝器你的Xamarin應用程序消耗。

我很想聽聽你的嘗試,以及你是否成功做到這一點。

祝你好運!

+0

對不起,我的意思是引用你所說的話,但它發佈了評論。 感謝您的解釋(我會投票,但我沒有代表)! 你可以在你的Xamarin:Android/iOS項目中使用自定義DLL嗎? – 2013-04-30 04:17:58

+0

我不能100%確定,但我想你可以,只要它們被編譯,並且可以在Mono下加載。我唯一要注意的是Clojure CLR確實使用動態語言運行時,並且如果您將它部署到移動平臺上,那可能無法按預期工作。不能傷害嘗試。 – 2013-04-30 12:57:21

0

可能是在Android中,但在iOS的情況下,我會說這不太可能,因爲後者是一個對生成的代碼,反射等有很多限制的平臺。動態輸入Clojure有很大的可能性受到影響。老實說,.NET世界中的Clojure更適合於F#(也是功能性的,默認情況下不可變的),這是一種剛剛被Xamarin採用爲官方語言(這意味着你可以在Android中使用它)和iOS和Mac)。

它也是靜態類型的(與Clojure相對),所以這可能意味着它也更快。試一試!

相關問題