Unknown - haskell-notes

Здесь есть возможность читать онлайн «Unknown - haskell-notes» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Старинная литература, на английском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

haskell-notes: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «haskell-notes»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

haskell-notes — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «haskell-notes», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

регруженных строках, как раз для этого существует расширение OverloadedStrings. При этом за обычной

записью строк может скрываться любой тип из класса:

class IsStringa where

fromString :: String ->a

Расширение TypeOperatorsпозволяет определять инфиксные имена не только для конструкторов типов,

но и для самих типов, синонимов типов и даже классов:

dataa :+:b = Lefta | Rightb

17.3 Краткое содержание

В этой главе мы затронули малую часть возможностей, которые предоставляются системой ghc. Haskell

является полигоном для испытания самых разнообразных идей. Это экспериментальный язык. Но в практиче-

ских целях в 1998 году был зафиксирован стандарт языка, его обычно называют Haskell98. Любое расшире-

ние подключается с помощью специальной прагмы Language. Новый стандарт Haskell Primeвключит в себя

наиболее устоявшиеся расширения. Также мы рассмотрели несколько полезных классов и синтаксических

конструкций, которые, возможно, облегчают написание программ.

17.4 Упражнения

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

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

вам в чужом коде или в библиотеках.

264 | Глава 17: Дополнительные возможности

Глава 18

Средства разработки

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

устанавливать и создавать библиотеки, писать документацию.

18.1 Пакеты

В Haskell есть ещё один уровень организации данных, мы можем объединять модули в пакеты (package).

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

кетов. Одним пакетом мы уже пользовались и довольно часто, это пакет base, который содержит все стан-

дартные модули, например такие как Prelude, Control.Applicativeили Data.Function. Для создания и

установки пакетов существует приложение cabal. Оно определяет протокол организации и распростране-

ния модулей Haskell.

Создание пакетов

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

хранятся в директории с именем src. Для того чтобы превратить набор модулей в пакет, нам необходимо

поместить в одну директорию с src два файла:

имяПакета.cabal – файл с описанием пакета.

Setup.hs – файл с инструкциями по установке пакета

.cabal

Посмотрим на простейший файл с описанием библиотеки, этот файл находится в одной директории с

той директорией, в которой содержатся все модули приложения и имеет расширение .cabal:

Name

: Foo

Version

:1.0

Library

build -depends

:base

exposed -modules

: Foo

Сначала идут свойства пакета. Общий формат определения свойства:

ИмяСвойства : Значение

В примере мы указали имя пакета Foo, и версию 1.0. После того, как мы указали все свойства, мы опре-

деляем будет наш пакет библиотекой или исполняемой программой или возможно он будет и тем и другим.

Если пакет будет библиотекой, то мы помещаем за набором атрибутов слово Library, а если это исполняе-

мая программа, то мы помещаем слово Executable, после мы пишем описание модулей пакета, зависимости

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

кой же как и в самом начале файла. Сначала идёт зарезервированное слово-атрибут, затем через двоеточие

следует значение. Обратите внимание на отступы за словом Library, они обязательны и сделаны с помощью

пробелов , cabal не воспринимает табуляцию.

Файл .cabal может содержать комментарии, они делаются также как и в Haskell, закомментированная

строка начинается с двойного тире.

| 265

Setup.hs

Файл Setup.hs содержит информацию о том как устанавливается библиотека. При установке могут ис-

пользоваться другие программы и библиотеки. Пока мы будем пользоваться простейшим случаем:

import Distribution.Simple

main =defaultMain

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «haskell-notes»

Представляем Вашему вниманию похожие книги на «haskell-notes» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «haskell-notes»

Обсуждение, отзывы о книге «haskell-notes» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x