Проблема с пакетом Haskell (newsynth) - PullRequest
0 голосов
/ 30 апреля 2020

Я новичок Haskell, и на моем компьютере (Ma c) установлено Haskell; Я пытаюсь использовать newsynth (https://www.mathstat.dal.ca/~selinger/newsynth/, http://hackage.haskell.org/package/newsynth). В моем терминале в том же месте, где я установил Haskell (домашний каталог), я выполнил команду cabal install newsynth, как было предложено авторами пакета. Однако я не могу понять, как на самом деле получить доступ к чему-либо из пакета из командной строки, не говоря уже о конкретном файле.

В GHCi Prelude я пробовал запускать команды вида import Quantum и import Quantum.Synthesis.Diophantine, но всегда получал сообщение об ошибке. (например, import Data.Complex работает просто отлично.)

(я уверен, что упускаю что-то довольно очевидное, но я только начал с Haskell в понедельник, и мне нужно набрать немного новостей код на следующей неделе, поэтому я не начинаю с нуля.) Любой совет (1) о том, как запускать функции newsynth из GHCi и (2), как включить их в файлы .hs, был бы очень признателен. Спасибо!

Редактировать: cabal --version возвращает cabal-install version 3.2.0.0 (новая строка) compiled using version 3.2.0.0 of the Cabal library

1 Ответ

1 голос
/ 30 апреля 2020

Цитирование комментария:

[cabal --version] возвращает: cabal-install version 3.2.0.0 (новая строка) compiled using version 3.2.0.0 of the Cabal library

Кажется, инструкции по установке на странице проекта Вы связались, чтобы еще не обновляться для cabal-install 3+ (честно говоря, cabal-install 3 относительно недавно). В любом случае:

  • Если все, что вам нужно, это запустить ghci и опробовать эти модули без присоединенных строк, используйте cabal install --lib newsynth. Это сделает пакет newsynth доступным в глобальной среде GH C (см. запись cabal install в Руководстве пользователя Cabal для получения дополнительной информации).

  • Поскольку в конечном итоге вы захотите использовать пакет в коде, который вам придется написать, я рекомендую использовать cabal init для создания нового проекта для вашего кода. Затем отредактируйте файл .cabal проекта, добавив newsynth в его раздел build-depends, и все: пакет будет установлен (если его еще нет) и будет доступен в контексте вашего проекта на следующем этапе. время, когда вы делаете cabal build для создания проекта или cabal repl для запуска GHCi в контексте вашего проекта. В этом случае вообще не нужно использовать команду cabal install.

...