Вопрос об использовании GHCi - PullRequest
1 голос
/ 26 сентября 2010

Я изучаю Haskell и использую режим Emacs + Haskell в качестве редактора.

После воспроизведения некоторых простых выражений в GHCi мне интересно, существуют ли эти функции IDE / редактора, которые существуют в Visual Stuido для F #:

  1. Могу ли я отправить содержимое в буфере обмена в переводчик? В настоящее время я могу только: загрузить файл в интерпретатор. Это неудобно, когда я постепенно пишу функции в файле сценария. Как и «Alt + Enter» в визуальном стиле.

  2. После компиляции я надеюсь увидеть сигнатуру функции, например

    пусть удвоит х = х + х

чтобы я мог лучше понять механизм вывода типов в Haskell.

Ответы [ 4 ]

3 голосов
/ 26 сентября 2010

Относительно вопроса 2, чтобы видеть предполагаемый тип выражения каждый раз, когда вы его вводите, вы можете указать внутри ghci: set + t. Я думаю, вы также можете поместить это в файл .ghci, внутри вашего домашнего каталога, как описано в http://www.haskell.org/ghc/docs/6.12.2/html/users_guide/ghci-dot-files.html.

3 голосов
/ 26 сентября 2010
  1. В Windows есть WinGHCi , графический интерфейс, включающий (плохую, но часто достаточную) поддержку копирования и вставки.Не знаю о версии командной строки.

  2. Используйте :type double (или ярлык :t double), чтобы получить сигнатуру типа double.Также есть :info, который применяется к значениям (включая функции), а также к типам и классам типов (например, :info Bool содержит определение Bool и всех классов типов, к которым он относится) и говорит, где он был определен.

2 голосов
/ 26 сентября 2010

Насколько я знаю, нет поддержки отправки буферов обмена в интерпретатор "из коробки", но это не должно занимать более пары строк elisp. Я бы посмотрел в режимах поддержки других языков и скопировал бы их оттуда, если бы я был вами.

Что касается типов, вы можете ввести C-c C-t или C-c C-i для любого символа в вашем коде, что вызовет команды ":t <symbol>" и ":i <symbol>" в процессе ghci

1 голос
/ 26 сентября 2010

TAIM утверждает, что отправляет выбранные выражения в vim в ghci (не пробовал)

Я не уверен насчет сигнатур функций внутри редактора, но в ghci its ": tfunc "

На самом деле, глядя на их видео на YouTube, похоже, что TAIM может выбрать": t func "в vim и отправить его интерпретатору.

...