РуЛиб - онлайн библиотека > Фелляйзен Маттиас > Программы > Как проектировать программы > страница 3

Читаем онлайн «Как проектировать программы» 3 cтраница

антицитирование...................................................................365
Объединение с антицитированием...........................................................................370
III АБСТРАКЦИИ .....................................................................................................375
14 Сходства повсюду.....................................................................................................376
14.1. Сходства в функциях..........................................................................................376
14.2. Отличающиеся сходства....................................................................................378
14.3. Сходства в определениях данных.....................................................................381
14.4. Функции – это значения....................................................................................384
14.5. Вычисления с функциями.................................................................................385
15 Проектирование абстракций...................................................................................389
15.1. Абстрагирование примеров..............................................................................389
15.2. Сходства в сигнатурах........................................................................................394
15.3. Единая точка управления .................................................................................399
15.4. Абстрагирование макетов.................................................................................400
16 Использование абстракций. ....................................................................................402
16.1. Имеющиеся абстракции....................................................................................403
16.2. Локальные определения....................................................................................405
16.3. Локальные определения добавляют выразительности...................................409
16.4. Вычисления с локальными определениями.....................................................411
16.5. Использование абстракций на примерах.........................................................415
16.6. Проектирование с использованием абстракций.............................................420
16.7. Практические упражнения: абстракция...........................................................422
16.8. Проекты: абстракция.........................................................................................423
17 Безымянные функции. .............................................................................................426
17.1. Определение функций с по­мощью лямбда-выражений.................................427
17.2. Вычисления с лямбда-выражениями................................................................429
17.3. Абстрагирование с по­мощью лямбда-выражений...........................................432
17.4. Определение спецификаций с по­мощью лямбда-выражений.......................435
17.5. Представление с по­мощью лямбда-выражений..............................................442
18 Итоги. ..........................................................................................................................447
8
Содержание
Интермеццо 3. Область видимости и абстракции. ......................................................448
Область видимости.....................................................................................................448
Циклы в языке ISL.......................................................................................................453
Сопоставление с образцом.........................................................................................461
IV ПЕРЕПЛЕТАЮЩИЕС Я Д АННЫЕ . .......................................................... 468
19 Поэзия S-выражений................................................................................................469
19.1. Деревья................................................................................................................469
19.2. Леса......................................................................................................................477
19.3. S-выражения.......................................................................................................479
19.4. Проектирование с использованием взаимосвязанных данных.....................485
19.5. Проект: BST.........................................................................................................487
19.6. Упрощение функций..........................................................................................491
20 Итеративное уточнение............................................................................................494
20.1. Анализ данных...................................................................................................494
20.2. Уточнение определений данных.......................................................................496
20.3. Уточнение функций...........................................................................................498
21 Уточнение интерпретатора......................................................................................501
21.1. Интерпретация выражений...............................................................................501
21.2. Интерпретация переменных.............................................................................504
21.3. Интерпретация функций...................................................................................507
21.4. Интерпретация всего и вся................................................................................509
22 Проект: обработка XML............................................................................................512
22.1. XML как S-выражения........................................................................................512
22.2. Отображение XML-перечислений.....................................................................518
22.3. Предметно-ориентированные языки...............................................................523
22.4. Чтение XML.........................................................................................................528
23 Одновременная обработка......................................................................................533
23.1. Одновременная обработка двух списков: случай 1.........................................533
23.2. Одновременная обработка двух списков: случай 2.........................................534
23.3. Одновременная обработка двух списков: случай 3.........................................537
23.4. Упрощение функций..........................................................................................541
23.5. Проектирование функций с двумя сложными аргументами..........................542
23.6. Практические упражнения: два аргумента......................................................544
23.7. Проект: база данных...........................................................................................548
24 Итоги.