Haskell: отображение/получение списка всех пользовательских функций

Есть ли в Haskell команда, которая отображает (или получает в виде списка) все пользовательские функции, которые были загружены/определены в GHCi? Спасибо


person artella    schedule 22.04.2012    source источник


Ответы (2)


Чтобы увидеть привязки, которые вы сделали в приглашении ghci (например, с помощью let или <-), попробуйте :show bindings.

Если вы загрузили несколько модулей, вы можете использовать :show modules, чтобы получить имена загруженных модулей, а затем :browse ModuleName, чтобы перечислить все, что входит в область действия этого модуля.

person Ben Millwood    schedule 23.04.2012
comment
Привет, я пробовал это, но это не сработало для меня. Я использую WinGHCi и загрузил функции с помощью функции «: load», как описано в сообщении Haskell: загрузка ВСЕХ файлов в текущем пути к каталогу. Однако, когда я пытаюсь «: показать привязки», он просто говорит «it :: Int = 7», потому что я вызывал «addNumber2 3 4» последним. Спасибо - person artella; 24.04.2012
comment
Я редактировал в инструкции, что вы делаете, если есть модули. - person Ben Millwood; 24.04.2012
comment
Привет, :browse требует знания того, какой модуль был загружен. Есть ли способ сделать это, не требуя знания того, какие модули были загружены? (см. также комментарий ниже). Спасибо. - person artella; 24.04.2012
comment
Я так не думаю, если вы не можете проанализировать вывод :show modules. - person Ben Millwood; 24.04.2012

В ghci используйте :browse или просто :bro после загрузки файла. Вы также можете просмотреть незагруженные модули через :browse Foo.Bar.Baz.

person Daniel Wagner    schedule 22.04.2012
comment
:br теперь преобразуется в :break, для просмотра вам понадобится :bro. - person Daniel Fischer; 23.04.2012
comment
@DanielFischer Спасибо, исправлено. - person Daniel Wagner; 23.04.2012
comment
:dawg должно быть синонимом ghci для :bro - person Dan Burton; 23.04.2012
comment
Привет, я пробовал это, но в WinGHCi ':browse' ничего не делает! Я загрузил файлы, как указано в сообщении Haskell: загрузка ВСЕХ файлов в текущем путь к каталогу - person artella; 24.04.2012
comment
Вы пробовали :browse ModuleName? - person Ben Millwood; 24.04.2012
comment
Ах, я не понял, что вы должны указать имя модуля. Но предположим, что у меня есть скрипты для загрузки разных модулей. Тогда есть ли способ увидеть все функции, которые были загружены из различных модулей, не требуя знания того, какие модули были загружены? Спасибо - person artella; 24.04.2012
comment
@artella В ghci :browse без аргументов показывает привязки, определенные в загруженных в данный момент модулях. Возможно, вам стоит перейти от объятий. знак равно - person Daniel Wagner; 24.04.2012