Я должен сделать проект термина в своем символическом классе программирования. Но я не уверен, какой будет хороший/законный проект. Может ли кто-нибудь дать мне примеры символического программирования? Просто любые общие идеи, потому что прямо сейчас я склоняюсь к пошаговой игре (в основном стиле jrpg), но я действительно не хочу делать игру.Что такое примеры символического программирования?
ответ
Простой арифметический переводчик в Scheme, который принимает список символов в качестве входных данных:
(define (symbolic-arith lst)
(case (car lst)
((add) (+ (cadr lst) (caddr lst)))
((sub) (- (cadr lst) (caddr lst)))
((mult) (* (cadr lst) (caddr lst)))
((div) (/ (cadr lst) (caddr lst)))
(else (error "unknown operator"))))
Пробное:
> (symbolic-arith '(add 2 43))
=> 45
> (symbolic-arith '(sub 10 43))
=> -33
> (symbolic-arith '(mu 50 43))
unknown operator
> (symbolic-arith '(mult 50 43))
=> 2150
Это показывает основную идею мета-круговое переводчиков. Lisp in Small Pieces - лучшее место, где можно узнать о таких переводчиках.
Еще один простой пример, в котором списки символов используются для реализации хранилища данных ключ-значение:
> (define person (list (cons 'name 'mat) (cons 'age 20)))
> person
=> ((name . mat) (age . 20))
> (assoc 'name person)
=> (name . mat)
> (assoc 'age person)
=> (age . 20)
Если вы новичок в Лиспе, Common Lisp: A Gentle Introduction to Symbolic Computation является хорошим местом для начала.
Это не (просто) голая попытка украсть репутацию Кена. Я не помню, какова была оригинальная мотивация Маккарти для создания Lisp. Но он, безусловно, подходит для компьютерной алгебры, включая дифференциацию и интеграцию.
Причина, по которой я размещаю, заключается в том, что автоматическая дифференциация используется для обозначения чего-то другого, кроме дифференцирования символических выражений. Он используется для обозначения функции, которая вычисляет производную от другой функции. Например, с учетом программы Fortran, которая вычисляет f(x)
, инструмент автоматического дифференцирования записывает функцию Fortran, которая вычисляет f'(x)
. Один из способов, конечно, состоит в том, чтобы попытаться преобразовать программу в символическое выражение, затем использовать символическое дифференцирование, а затем преобразовать полученное выражение в программу снова.
Первое из них - отличное упражнение в символических вычислениях, хотя оно так хорошо протоптано, что это не может быть хорошим выбором для курсовой работы. Второй - активный исследовательский фронт, и ОП должен быть осторожен, чтобы не откусить больше, чем (а), которые он может пережевать. Однако даже ограниченная реализация будет интересной и сложной.
В этом контексте полезен книга Paradigms of Artificial Intelligence Programming, Case Studies in Common Lisp Петра Норвига.
В книге подробно описывается символическое программирование ИИ с использованием Common Lisp.
Примеры относятся к области компьютерной алгебры, решения математических задач, игры, реализации компилятора и т. Д.
Скоро будет еще одна забавная книга: The Land of Lisp от Conrad Barski.
Вообще есть много возможных применения символического программирования:
- вопрос естественного языка отвечать
- естественного языка поколение истории
- планирования в логистике
- компьютерной алгебры
- диагностики неисправностей технические системы
- описание каталогов вещей и соответствия
- игры играть
- сцены understaning
- конфигурацию технических вещей
- 1. Что такое язык программирования?
- 2. Что такое идиома программирования?
- 3. Определения программирования: Что такое «Строительство».
- 4. Что такое серверный язык программирования?
- 5. Что такое парадигма программирования Dtrace?
- 6. Что такое язык программирования D?
- 7. примеры кода программирования Metawatch?
- 8. Что такое облачные вычисления? приведены некоторые примеры
- 9. Что такое избегание тупика и какие примеры?
- 10. Что такое практические примеры объектов прототипа javascript?
- 11. Что такое алгоритм раздвижного окна? Примеры?
- 12. Требуются примеры принципов программирования SOLID
- 13. Современные C++ игры Примеры программирования
- 14. Примеры спартанского программирования в C#
- 15. Примеры кода для языков программирования
- 16. «Элементы программирования» примеры реального мира?
- 17. Примеры программирования Dynamics AX 2009?
- 18. Примеры программирования, ориентированные на аспекты
- 19. Что такое методология программирования соло разработчиков?
- 20. Что такое конструкция программирования первого класса?
- 21. В терминах программирования, что такое обратное решение?
- 22. Что такое простой реактивный язык программирования?
- 23. Путь программирования: что такое нерегулярная петля?
- 24. Что такое список курсовых языков программирования?
- 25. Что такое низкоуровневая сантехника в поле программирования?
- 26. Что такое .nan в языке программирования D?
- 27. Что такое идеальная настройка программирования пары?
- 28. Что такое «ценность» в контексте программирования?
- 29. Что такое язык программирования этого фрагмента кода?
- 30. Что такое "Ортогональность"?
Я думаю, что я слышал, что оригинальная мотивация Маккарти на Лиспе было написать программу, чтобы сделать автоматическую дифференциацию. Любая компьютерная алгебра, вероятно, квалифицируется как символическое программирование. – Ken
@ Ken: Вы должны сказать это как ответ, это хорошее предложение. – Charles