2013-04-30 13 views
6

私はClojureが大好きです。私の好きな言葉です。XamarinでClojure CLRをC#で使用することはできますか?

私はXamarinを見つけました。これは、クロスプラットフォームのアプリケーションを持ち、ネイティブライブラリを最大限に活用することができます。それと共に使用される言語はC#です。

今私はC#ではなく、Clojure(CLR)で自分のXamarinアプリケーションの大半をプログラミングする方法があるのだろうかと思っています。

+1

正規のClojureは既に*クロスプラットフォームであり、ネイティブライブラリを使用できます。あなたは達成しようとしていることについてもう少し具体的にすることができますか?クロスプラットフォームのネイティブグラフィックスライブラリであれば、Clojureからうまく動作するLibGDXを見ることができます。 – mikera

答えて

2

したがって、Clojure CLRは、ロード可能なライブラリを使用できるようにします。例えば、私はClojureのCLRにOracle.DataAccessライブラリ、およびNLogライブラリをロードしたので、Xamarinが同じようライブラリをロードすることは理論的には可能です:言われて、Xamarin自体もに表示されていることを

;;; not sure which library you want to include, using this as a placeholder 
(assembly-load-from "C:/Path/To/Xamarin.Core.dll") 

をIDEであり、独自のライブラリとビルドツールの上にビルドツールのセットがあるため、2つを完全に統合することは不可能かもしれません。また、Xamarinは純粋にC#で動作すると思うので、Clojureでのコーディングはおそらく不可能です...直接。

Clojure CLRでいくつかのライブラリを作成し、DLLにコンパイルしてリンクすると、Clojureでロジックの大部分を構築してから、いくつかの簡単なC#ラッパーを作成できます。あなたのXamarinアプリは消耗します。

私はあなたが試したことを聞いて、あなたがこれを成功させているかどうかを知りたいです。

運が良かった!

+0

申し訳ありませんが、私はあなたが言ったことを引用するつもりでしたが、代わりにコメントを投稿しました。 この説明をいただきありがとうございます(私は投票しますが、担当者はいません)! Xamarin:Android/iOSプロジェクトでカスタムDLLを使用できますか? –

+0

私は100%確実ではありませんが、コンパイルされていれば、Monoの下に読み込むことができます。私が注意しなければならない唯一の他のことは、Clojure CLRがDynamic Language Runtimeを使用しており、これをモバイルプラットフォームにデプロイする場合、期待どおりに動作しない可能性があります。試して傷つけることはできません。 –

0

Androidの場合はおそらくはいですが、iOSの場合、後者は生成されたコードやリフレクションなどの制限が多いプラットフォームなので、そうは思わないでしょう。 Clojureに動的に型指定されると、影響を受ける可能性が高くなります。

正直なところ、.NETの世界のClojureは、Xamarinによって正式に採用された言語であるF#(機能性、デフォルトでは変更不能など) iOS、Mac)をサポートしています。

これも(Clojureとは対照的に)静的に型指定されているため、これも高速です。試してみる!