В C, если я хочу увидеть функцию, которая работает, я открываю библиотеку, которая предоставляет функцию и анализирует код. Как можно реализовать реализации функций lisp? Например, функция пересеченияреализация функций lisp
ответ
Вы также можете посмотреть исходный код функций lisp.
Например, исходные файлы для CLISP, одна реализация Common Lisp, доступны здесь: http://www.clisp.org/impnotes/src-files.html
Если вы хотите, чтобы рассмотреть вопрос об осуществлении функций, связанных со списками, вы можете посмотреть на файл: http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/list.d
обычный ответ «M-.
»
Предполагая, что вы правильно сконфигурированный IDE, а исходный код функции, нажав на его название и нажав M-.
(это Meta или Alt или Option или бежать, и точка/период, или w какой бы ключ ни использовал ваш IDE) должен показать свое определение (или, для общей функции, определения, множественное число; включая любые макросы компилятора, которые могут оптимизировать некоторые случаи). Иногда это происходит при щелчке правой кнопкой мыши или другом меню мыши или панели инструментов.
Если источник не доступен, вы часто можете увидеть фактическую скомпилированную форму путем оценки (disassemble 'function)
Большинства IDE, в том числе многолетних любимого Emacs + Слизи, другие операции инспекции в меню, а также.
В среде, отличной от IDE, большинство компиляторов имеют собственные инструменты отражения (зависящие от компилятора), которые обычно также отображаются в библиотеке Swank, используемой Slime; можно найти полезную функцию в этом пакете.
И это действительно должно быть задокументировано в руководстве вашей IDE.
я POSTSCRIPT это что:
Вы действительно не должны заботиться о выполнении ключевых функций библиотеки; их контрактное поведение очень хорошо документировано в стандарте CLHS, доступном в Интернете, и, например, Quicklisp имеет утилиту для связывания его с Slime (C-c C-d h
на символ в пакете COMMON-LISP
); для всех хорошо написанных библиотек Lisp должна быть документация, прикрепленная к функциям, переменным, классам и т. д., доступная через функцию documentation
в меню REPL или меню IDE и окна инспекции.
Основные функции библиотеки часто высоко оптимизированы и намного сложнее, чем большинство кодеков пользовательского уровня, и они часто обращаются к компиляционным «кишкам», которых следует избегать в коде приложения.
- 1. Реализация основных библиотечных функций в LISP (вручную)
- 2. Реализация Windows Scheme/Lisp
- 3. Реализация Common Lisp `format`
- 4. Lisp - реализация макроса «case»
- 5. Java реализация LISP почти работает
- 6. Руководство и реализация Alexandria Lisp
- 7. Реализация Мандельброта в Common Lisp
- 8. Реализация функций друга
- 9. реализация функций в игре
- 10. Простая реализация хеш-функций
- 11. Реализация нескольких вложенных функций
- 12. Декларация и реализация функций
- 13. Реализация перегрузки функций
- 14. Реализация функций кодирования Oracle
- 15. реализация структур функций: какой тип данных использовать?
- 16. Реализация схемы/LISP для следующего проекта?
- 17. Списки и реализация членов в Common Lisp
- 18. Общая реализация Lisp для скрытого семантического индексирования
- 19. Названия функций как строки в Lisp?
- 20. Просмотр/перехват всех вызовов функций emacs lisp
- 21. Как добраться от lambdas до функций? (LISP)
- 22. Как изменить привязки функций в Common Lisp?
- 23. Как получить список неактивных функций Emacs lisp?
- 24. Чтение функций в Lisp не подсказывает
- 25. Вызов списка функций в Common Lisp
- 26. Реализация функций против исправления ошибок
- 27. Реализация статических функций в PHP
- 28. Реализация функций `aes.h` в openssl
- 29. Реализация функций math.h в ассемблере
- 30. Реализация определяемых пользователем арифметических функций
В C вы можете сделать это только в том случае, если библиотека является свободным программным обеспечением. Для проприетарной библиотеки вы застряли ... И в Linux, для системных вызовов, большая часть работы выполняется внутри ядра, так что это намного сложнее, чем вы думаете –
wow я этого не знал. спасибо @BasileStarynkevitch – snr
Это вопрос очень низкого качества. Вопрос неудобен для Stackoverflow (речь идет не о реальной проблеме программирования), и автор не приложил никаких усилий. –