2011-01-15 2 views
2

снова новый вопрос от меня о Haskell и Leskah.организовать пакет haskell между несколькими файлами

(Во-первых, субъективный комплимент для любителей Haskell: при каждом возвращении на учебную сессию Haskell мне это нравится все больше и больше. Надеюсь, это продолжится долго :-). Последним удовольствием был сахар Леска для автоматического преобразования символов в математику. Это делает код очень приятным. Но хорошо, это не главное ...)

Я хотел бы организовать пакет ученика в несколько файлов. Но мне не удалось добавить второй файл, например. Second.hs, содержащий другие определения, для моего текущего модуля сборки пакета. Я добавил его в Leskah/Edit Package/Extra Files. Но это, похоже, не делает работу. Более того, я чувствую, что это было немного неловко, чтобы добавить каждый новый файл таким образом (через Leskah/Edit Package/Extra Files).

В любом случае, в результате все, что было построено, по-прежнему остается только содержимым моего Main.hs. Я, конечно, пропустил какой-то момент?!

Другой вопрос: в C++ я в большой степени использую namespace, чтобы отсортировать определения объектов по теме/цели. Что эквивалентно пространству имен в Haskell? Модуль? Пакет ?

ответ

3

Что касается leksah: вы можете добавить новый модуль через панель браузера. Просто щелкните правой кнопкой мыши и выберите «Добавить модуль» из контекстного меню (Примечание: введите имя модуля, но не имя файла в диалоговом окне). Добавление модулей из редактора пакетов предназначено только для добавления существующего модуля в файл cabal. (Если вы не знаете, что означает «cabal», тогда самое подходящее время для Google:))

Относительно пространства имен. Я думаю, что ближайший эквивалент - это модуль. Вы можете просто импортировать модуль для добавления определений в текущий контекст. В качестве альтернативы вы можете импортировать модуль, в этом случае вам придется квалифицировать определения из модуля. Также при импорте вы можете указать имя модуля.

import Module1 
import qualified Modile2 
import Module3 as M3 
import qualified Modile4 as M4 

Пакет эквивалентен скомпилированной библиотеке в C/C++.

+0

Не смейтесь надо мной, мне потребовалось время, чтобы найти хорошее контекстное меню. Я пробовал функциональность «Добавить модуль» ... И это именно то, что я искал. Спасибо. –

+0

Просто замечание, я посмотрел на реализацию файла «.cabal», но для меня сейчас это слишком много компонентов конфигурации/администрирования. Я посмотрю на это снова, когда захочу понять пакеты немного дальше. –

 Смежные вопросы

  • Нет связанных вопросов^_^