2012-04-30 7 views
1

私はMac OS X 10.7でObjective Cアプリケーションを書いていますが、算術制約の問題を解決する必要があります。 例えば、私は長方形のための2つの式を有し、AおよびBは、辺の長さである。Objective-Cの制約ネットワーク

P=2(a+b) (perimeter) 
A=ab  (area) 

Iは、制約充足問題として、この問題を同定しました。 ユーザはaとAを指定し、bとPを計算する必要があります。 これはhttp://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_idx_3516に実装されていますが、ObjectiveからLISPプログラムを呼び出すきれいな方法があるかどうかはわかりませんC.私はソルバーにObjective Cインターフェイスを提供できるものを探しています。あるいは、LISPプログラムをObjective Cライブラリにコンパイルすることもできます。それ以外の場合は、最小限のオープンソース制約ソルバーが私のニーズに合っています。

+0

Clozure Common LispにはObjective Cブリッジと、CCLをOS X環境に接続するためのドキュメントが豊富に用意されています。 –

答えて

0

これが解決する必要がある唯一の問題であれば、それは簡単です。あなたはAaの面でbを解決することができます:

b = A/a 

その後、あなたはあなたが投稿最初の式を用いてPを見つけることができます。

1

実際には、iOSのためのlispシステムを構築する人がいます。 (免責事項 - 私は私の人生でのLispを使ったことがない)

このSOその作者このSO質問githubの

ecl-iphone-builderを持ってthe funcall blogcommon-lisp-on-iphone-iosポイントを問う:has-anyone-got-any-code-examples-of-ecl-lisp-for-iphone-developmentが同じ目的地になってしまいます。

うまくいけば、それはあなたにとって良いスタートです。

EDIT

私は完全にこれはないのiOS質問したことを逃しました。

しかし、OSXでlispを実行している人がいます。このSO質問は、いくつかの解決策があります:what-is-the-best-scheme-or-lisp-implementation-for-os-x

このブログは:common-lisp-on-mac-os-xは、より多くのナットとボルトである(と私のためのGoogleのトップだった)がある(

+0

私はMac OS X 10.7で動作する、iOSではなく動作するソリューションに興味があります。私は詳細を見て、それがiOSに固有であるかどうかを確認します。 – alecail

+0

Ooops ..私の間違い..私は実際に私が見た純粋にOSXの情報を割り引いた!しかし、OSXのためのリスプソリューションがあります –

1

その本の例はSchemeで書かれている、のLisp方言たくさんの)。この本は多少古くなっていますが、今日のSchemeの実装では、その本の中のコード例を実行することができます。 OSX上で実行されるSchemeの実装はいくつかありますが、この本の例はCommon Lispにも簡単に移植されます。実際にはわずかな違いしかありません。それ以上に、私はC/Obj-Cで書くのにそれほど時間がかかるとは思わない。この本の例は汎用プログラミングであり、使用するLisp方言に非常に特有のものではありません。

(Wikiの記事にも実装に関するリンクがありますが、私はバイアスをかけないように特定の広告を宣伝したくありません - さらに、学外で多くの経験をしているわけではありません)。

恐らく、数学の定理を証明するための汎用ツールを探していれば、Coqを見ることができます。これは正確にタスクに特化した言語です。また、UnixやUnixライクなOSで動作します。

0

nuプログラミング言語は、Objective-Cアプリケーションに組み込むことを含め、Objective-Cと統合できるLisp言語です。 http://programming.nu/index

私はこれについて非常に良いことを聞いたことがありますが、それを使用したことはありません。

Objective-Cにその制約ソルバーアプリを翻訳してみることもできます。