2012-04-30 3 views
1

Я пишу приложение Objective C на Mac OS X 10.7, и мне нужно решить проблему с арифметическими ограничениями. Например, у меня есть два уравнения для прямоугольника, а и б являются длинами сторон:Ограничительная сеть в Objective-C

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

я определил эту проблему как проблема удовлетворения ограничений. Пользователь должен уметь указывать a и A и иметь вычисление решателя b и P. Я нашел реализацию этого в http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_idx_3516, но я не уверен, есть ли чистый способ вызова программ LISP из Objective C. Я ищу что-то, что может предоставить мне интерфейс Objective C для решателя или, возможно, скомпилировать LISP-программу в библиотеку Objective C. В противном случае минималистский решатель ограничений с открытым исходным кодом соответствовал моим потребностям.

+0

Clozure Common Lisp имеет мост Objective C и хорошую документацию по подключению CCL к среде OS X. –

ответ

0

Если это единственная проблема, которую вам нужно решить, это проще, чем это. Вы можете решить b с точки зрения A и a:

b = A/a 

Затем вы можете найти P используя первое уравнение вас в курсе.

1

На самом деле люди создают системы lisp для iOS. (Отказ от ответственности - я никогда не использовал шепелявость в моей жизни)

Этот вопрос SO common-lisp-on-iphone-ios указывает на the funcall blog, автор которого имеет ecl-iphone-builder на GitHub

Этот SO вопрос: has-anyone-got-any-code-examples-of-ecl-lisp-for-iphone-development заканчивается в тот же пункт назначения.

Надеюсь, это хорошее начало для вас.

EDIT

я полностью пропустил, что это не ИОС вопрос.

Но есть люди, работающие на OSX. Этот SO вопрос имеет несколько решений: what-is-the-best-scheme-or-lisp-implementation-for-os-x

Этот блог: common-lisp-on-mac-os-x это больше гайки и болты (и был в верхней части Google для меня)

+0

Меня интересует решение, которое работает на MacOS X 10.7, а не iOS. Я посмотрю более подробно и посмотрю, является ли это специфическим для iOS. – alecail

+0

Ooops .. моя ошибка .. Я фактически отказался от чисто OSX-информации, которую я видел! Но есть решения lisp для OSX –

1

примеров этой книги написаны на Scheme, диалект Lisp (есть многие). Книга несколько старая, но большинство реализаций Схемы сегодня смогут выполнять примеры кода в этой книге. Существует несколько реализаций Схемы, которые выполняются на OSX, но примеры из книги легко переносятся на Common Lisp - на самом деле, есть только незначительная разница. Более того, я не верю, что потребуется много времени, чтобы написать их в C/Obj-C. Примеры в книге предназначены для программирования общего назначения, ничего необычного для диалекта Лиспа, который они используют.

(В статье в Wiki также есть ссылки на реализации, я не хочу рекламировать какой-либо конкретный, чтобы не казаться предвзятым - кроме того, у меня нет большого опыта использования его за пределами академии).

Возможно, если вы искали инструмент общего назначения для доказательства математических теорем, то вы могли бы изучить Coq - это язык, который точно специализируется на задаче. Он также работает на любых Unix или Unix-подобных ОС.

0

Язык программирования nu - это диалект Лиспа, который может интегрироваться с Objective-C, включая встроенный в приложение Objective-C. http://programming.nu/index

Я слышал об этом очень хорошо, но никогда не использовал его.

Вы также можете просто попробовать перевести это приложение для решения ограничений в Objective-C.

 Смежные вопросы

  • Нет связанных вопросов^_^