Читаем Учебник по Haskell полностью

Этим файлом мы описали библиотеку с именем pinocchio, версия 1.1.1, она использует версию cabal

не ниже 1.2. Библиотека выпущена под лицензией BSD3. Файл с лицензией находится в текущей директо-

рии под именем LICENSE. Автор библиотеки Mister Geppetto. Подробнее узнать о библиотеке можно на её

домашней странице http://pinocchio. sourceforge. net/. Атрибут Category указывает на широкую отрасль

знаний, к которой принадлежит наша библиотека. В данном случае мы описываем библиотеку для построе-

ния роботов из дерева, об этом мы пишем в атрибуте Synopsis (краткое описание), поэтому наша библиоте-

ка принадлежит к категории искусственный интеллект или сокращённо AI. Последний атрибут Build-Type

указывает на тип сборки пакета. Мы будем пользоваться значением Simple, который соответствует сборке с

помощью простейшего файла Setup. hs, который мы рассмотрели в предыдущем разделе.

После описания пакета, идёт слово Library, ведь мы создаём библиотеку. Далее в атрибуте Build-

Depends

мы указываем зависимости для нашего пакета. Здесь мы перечисляем все пакеты, которые мы используем в

своей библиотеке. В данном случае мы пользовались лишь стандартной библиотекой base. В атрибуте hs-

source-dirs мы указываем, где искать директорию с исходным кодом библиотеки. Затем мы указываем три

внешних модуля, они будут доступны пользователю после установки библиотеки (атрибут Exposed-Modules),

и внутренние скрытые модули (атрибут Other-Modules).

Создаём исполняемые программы

Типичный файл . cabal для исполняемой программы:

Name:

micro

Version:

0.0

Cabal-Version:

>= 1.2

License:

BSD3

Author:

Tony Reeds

Synopsis:

Small programming language

Build-Type:

Simple

Executable micro

266 | Глава 18: Средства разработки

Build-Depends:

base, parsec

Main-Is:

Main. hs

Hs-Source-Dirs: micro

Executable micro-repl

Main-Is:

Main. hs

Build-Depends:

base, parsec

Hs-Source-Dirs: repl

Other-Modules:

Utils

В этом файле мы описываем две программы. Компилятор языка и интерпретатор языка micro. Если срав-

нить этот файл с файлом для библиотеки, то мы заметим лишь один новый атрибут. Это Main-Is. Он указыва-

ет в каком модуле содержится функция main. После установки этого пакета будут созданы два исполняемых

файла. С именами micro и micro-repl.

Установка пакета

Пакеты устанавливаются с помощью команды install. Необходимо перейти в директорию пакета, ту,

в которой находятся два служебных файла (. cabal и Setup. hs) и директория с исходниками, и запустить

команду:

cabal install

Если мы нигде не ошиблись в описании пакета, не перепутали табуляцию с пробелами при отступах, или

указали без ошибок все зависимости, то пакет успешно установится. Если это библиотека, то мы сможем

подключать экспортируемые ей модули в любом другом модуле, просто указав их в директиве import. При

этом нам уже не важно, где находятся модули библиотеки. Мы имеем возможность импортировать их из

любого модуля. Если же пакет был исполняемой программой, будут созданы бинарные файлы программ. В

конце cabal сообщит нам куда он их положил.

Иногда возникают проблемы с пакетами, которые генерируют исполняемые файлы, а затем с их помощью

устанавливают другие пакеты. Проблема возникает из-за того, что cabal может положить бинарный файл в

директорию, которая не видна следующим программам, которые хотят продолжить установку. В этом слу-

чае необходимо либо переложить созданные бинарные файлы в директорию, которая будет им видна, или

добавить директорию с новыми бинарными файлами в PATH (под UNIX, Linux). Переменная операционной

системы PATH содержит список всех путей, в которых система ищет исполняемые программы, если путь не

указан явно. Посмотреть содержание PATH можно, вызвав:

$ echo $PATH

Появится строка директорий, которые записаны через двоеточие. Для того чтобы добавить директорию

/data/dir в PATH необходимо написать:

$ PATH=$PATH:/data/dir

Эта команда добавит директорию в PATH для текущей сессии в терминале, если мы хотим записать её

насовсем, мы добавим эту команду в специальный скрытый файл . bashrc, он находится в домашней дирек-

тории пользователя. Под Windows добавить директорию в PATH можно с помощью графического интерфейса.

Кликните правой кнопкой мыши на иконку My Computer (Мой Компьютер), в появившемся меню выбери-

те вкладку Properties (Свойства). Появится окно System Properties (Свойства системы), в нём выберите

вкладку Advanced и там нажмите на кнопку Environment variables (Переменные среды). И в этом окне будет

строка Path, её мы и хотим отредактировать, добавив необходимые нам пути.

Давайте потренируемся и создадим библиотеку и исполняемую программу. Создадим библиотеку, кото-

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных