Unknown - haskell-notes

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

имя, то есть с приставкой имени модуля, например функция fun, определённая в модуле M, имеет полное

имя M.fun, тогда в комментариях мы обозначаем её ’M.fun’.

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

don’t, isn’t. Перед такими вхождениями ординарных кавычек можно не писать обратный слэш. Haddockсумеет

отличить их от идентификатора.

Курсив и моноширинный шрифт

Для выделения текста курсивом, он заключается в окружение .... Для написания текста моноширинным

шрифтом, он заключается в окружение ...@@.

Модули

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

-- | This is a reference to the ”Foo” module.

Создание документации с помощью Haddock | 273

Списки

Список без нумерации обозначается с помощью звёздочек:

-- | This is a bulleted list:

--

--

* first item

--

--

* second item

Пронумерованный список, обозначается символами (n) или n .(n с точкой), где n – некоторое целое

число:

-- | This is an enumerated list:

--

--

(1) first item

--

--

2. second item

Список определений

Определения обозначаются квадратными скобками, например комментарий:

-- | This is a definition list:

--

--

[@foo@] The description of @foo@.

--

--

[@bar@] The description of @bar@.

в документации будет выглядеть так:

fooThe description of foo.

barThe description of bar.

Для выделения текста моноширинным шрифтом мы воспользовались окружением ...@@.

URL

Ссылки на сайты включаются с помощью окружения <...>.

Ссылки внутри модуля

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

этого мы помещаем в том месте, на которое мы хотим сослаться, запись #label#, где label – это идентифика-

тор ссылки. Теперь мы можем сослаться на это место из другого модуля с помощью записи ” module#label”,

где module– имя модуля, в котором находится ссылка label.

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

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

лись создавать библиотеки и документировать их.

18.4 Упражнения

Вспомните один из примеров и превратите его в библиотеку. Например, напишите библиотеку для нату-

ральных чисел Пеано.

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

Глава 19

Ориентируемся по карте

Рассмотрим задачу поиска маршрута на карте. У нас есть карта метро и нам нужно проложить маршрут

от одной станции к другой. Карта метро~– это граф, узлы обозначают станции, а рёбра соединяют соседние

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

путь от станции площадь Баха до станции Таинственный лес (рис. 19.1).

Космодром

Запад

Таинственный

лес

Призрак

Инева

ул.Булычёва

Троллев мост

Тилль

Сириус

Звезда

Север

Лао

Юг

Де

пл.Баха

Крест

пл.Шекспира

Дно болота

Родник

Восток

Рис. 19.1: Схема метрополитена

Давайте переведём этот рисунок на Haskell. Сначала опишем имена линий и станций:

module Metro where

data Station = St Way Name

deriving( Show, Eq)

data Way = Blue | Black | Green | Red | Orange

deriving( Show, Eq)

data Name = Kosmodrom | UlBylichova | Zvezda

| Zapad | Ineva | De | Krest | Rodnik | Vostok

| Yug | Sirius | Til | TrollevMost | Prizrak | TainstvenniyLes

| DnoBolota | PlBakha | Lao | Sever

| PlShekspira

deriving( Show, Eq)

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

между станциями по прямой:

| 275

data Point = Point

{ px :: Double

, py :: Double

} deriving( Show, Eq)

place :: Name -> Point

place x =uncurry Point $ casex of

Kosmodrom

->( -3,7)

UlBylichova

->( -2,4)

Zvezda

->(0,1)

Zapad

->(1,7)

Ineva

->(0.5, 4)

De

->(0, -1)

Krest

->(0, -3)

Rodnik

->(0, -5)

Vostok

->( -1, -7)

Yug

->( -7, -1)

Sirius

->( -3,0)

Til

->(3,2)

TrollevMost

->(5,4)

Prizrak

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

Интервал:

Закладка:

Сделать

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

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


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

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

x