Пиша приложение на Objective C на Mac OSX 10.7 и трябва да реша проблем с аритметични ограничения. Например, имам две уравнения за правоъгълник, a и b са дължините на страните:
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. В противен случай минималистичен разтворител с ограничен отворен код ще отговаря на моите нужди.
Отговори:
1 за отговор № 1Всъщност има хора, изграждащи Lisp системи за iOS. (Отказ от отговорност - никога не съм използвал lisp през живота си)
Този въпрос за SO здравия фъфлене-он-Iphone-ЗИ сочи към блогът за функционални обаждания, чийто автор има ECL-iphone-строител на github
Този въпрос: е-някой-има-някакви Ви код примери от употреба ECL-фъфлене-за-iphone-развитие завършва на същата дестинация.
Дано това е добро начало за вас.
РЕДАКТИРАНЕ
Напълно пропуснах, че това беше не въпрос на iOS.
Но има хора, които изпълняват lisp на OSX. Този SO въпрос има някои решения: какво-е-на-най-добрата схема-или-фъфлене-изпълнение-за-OS-X
Този блог: здравия фъфлене-он-Mac-OS-X е повече гайки и болтове (и беше горната част на Google за мен)
1 за отговор № 2
Примерите за тази книга са написани схема, диалект на Лисп (има много). Книгата е някак стара, но повечето реализации на схема днес биха могли да изпълнят кодовите примери в тази книга. Има няколко реализации на Scheme, които работят на OSX, но примери от книгата лесно биха се пренесли и в Common Lisp - наистина има малка разлика. Повече от това, не вярвам, че ще отнеме толкова много време, за да напишете ги в C / Obj-C. Примерите в книгата са предназначени за програмиране с общо предназначение, нищо изключително характерно за диалекта на Лисп, който използват.
(Статията в Уики също има връзки към реализации. Не искам да рекламирам някоя конкретна, за да не звучи пристрастно - освен това аз нямам голям опит да я използвам извън академичните среди).
Вероятно, ако търсите инструмент с общо предназначение за доказване на математически теореми, тогава бихте могли да разгледате Coq - това е езикът, който е специализиран точно върху задачата. Той също работи на всяка Unix или Unix-подобна ОС.
0 за отговор № 3
Ако това е единственият проблем, който трябва да разрешите, това е по-лесно от това. Можете да решите b
от гледна точка на A
и a
:
b = A / a
Тогава можете да намерите P
използвайки първото уравнение, което сте публикували.
0 за отговор № 4
Езикът на програмиране nu е диалект на Лисп, който може да се интегрира с Objective-C, включително да бъде вграден в приложение на Objective-C. http://programming.nu/index
Чух много добри неща за него, но никога не съм го използвал.
Можете също така просто да опитате да преведете това приложение за решаване на ограничения в Objective-C.