1

Mac OS X 10.7 で Objective C アプリケーションを作成していますが、算術制約の問題を解決する必要があります。たとえば、長方形の 2 つの方程式があり、a と b は辺の長さです。

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

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

4

4 に答える 4

1

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

(Wikiの記事には実装へのリンクもあります。偏見がないように特定の実装を宣伝したくありません。さらに、学外での使用経験はあまりありません)。

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

于 2012-04-30T18:38:43.270 に答える
1

実際、iOS 用の Lisp システムを構築している人がいます。(免責事項 - 私は人生でLispを使ったことがありません)

この SO の質問common-lisp-on-iphone-iosは、作者がgithubにecl-iphone-builderを持っている funcall ブログを指しています

この SO の質問: has-anyone-got-any-code-examples-of-ecl-lisp-for-iphone-developmentは同じ宛先に行き着きます。

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

編集

これがiOS に関する質問ではないことを完全に見逃していました。

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

このブログ: common-lisp-on-mac-os-xはもっと基本的なことです (そして、私にとっては Google のトップでした)

于 2012-04-30T12:12:18.050 に答える
0

これがあなたが解決する必要がある唯一の問題であるならば、それはそれより簡単です。あなたはとbの観点から解決することができます:Aa

b = A / a

P次に、投稿した最初の方程式を使用して見つけることができます。

于 2012-04-30T10:31:15.900 に答える
0

nu プログラミング言語は、Objective-C アプリケーションへの組み込みなど、Objective-C と統合できる Lisp の方言です。 http://programming.nu/index

とても良いとは聞いていましたが、使ったことはありません。

また、その制約ソルバー アプリを Objective-C に変換してみてください。

于 2012-05-01T01:17:55.497 に答える