Вопрос по – Есть ли способ просмотреть исходный код функции из REPL Racket?

4

Я сейчас пытаюсь немного погрузиться в Racket / Scheme. У меня есть экземпляр (X) REPL, запущенный рядом с моим редактором, который очень помогает мне в изучении языка. Тем не менее, я не могу найти команду или макрос XREPL (или что-то еще), который показал бы мне исходный код функции.

Кажется, там есть все необходимые детали:

XREPL & APOS; sdescribe Команда знает файл:

-> ,describe string-join
; `string-join' is a bound identifier,
;   defined in racket/string.rkt
;   required directly

а такжеget-collects-search-dirs знает путь:

-> (require setup/dirs)
-> (get-collects-search-dirs)
'(#<path:/home/richard/.racket/5.2.1/collects>
  #<path:/usr/local/lib/racket/collects>)

И на стороне отражения вещей мы имеем:

-> (procedure-arity string-join)
2

Но все это перестает быть полезным, если все, что вы хотите знать, это как вызывать функцию. Есть ли способ получить доступ к реализации функции или, по крайней мере, к именам параметров?

Или, что также будет работать для меня - какой-то простой текстовый эквивалент в REPL документации, котораяhelp открывает?

Ваш Ответ

3   ответа
3

proc

(procedure-arity proc) as you mentioned will give you the number of arguments (pa proc) will print the argument list (pp proc) will print the body of the procedure

defineset!

paError: User Rate Limit ExceededppError: User Rate Limit Exceeded rwos
4

,describe улучшена команда для вывода имен аргументов функции и контракта;источник.

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Имейте в виду, что это, по-видимому, ограничено функциями, имеющими документацию Scribble в установленных пакетах.

Error: User Rate Limit Exceeded,describeError: User Rate Limit Exceeded rwos
4

Гейзер

Увидеть:

.

extract-docstring.rkt

xrepl

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededcase-lambdaError: User Rate Limit Exceededgeiser.
Error: User Rate Limit ExceededsolutionsError: User Rate Limit Exceeded rwos

Похожие вопросы