Занятие 10. Язык Icon: высокая мощь за скромным фасадом. Часть 1
0:00:00 - Вступление 0:01:29 - Предупреждение 0:01:57 - Зачем рассматривать старые языки и почему не стыдно "изобрести велосипед" 0:07:43 - Почему лекции такие длинные и их неожиданное применение 0:08:37 - "Поехали!" 0:08:44 - Строка - универсальный и важнейший тип данных 0:09:50 - Специализированный язык для работы со строками 0:10:18 - Регулярные выражения и их главный недостаток 0:12:04 - Снобол и его авторы 0:12:36 - Р.Грисуолд 0:12:52 - История названий языка 0:14:12 - Использование БНФ и пример кода на Сноболе 0:15:45 - Снобол родил Icon - язык нонконформистов 0:16:31 - Icon жив! 0:17:23 - Книги по Сноболу и Icon 0:18:48 - Чем мы будем пользоваться 0:19:56 - Первый взгляд на язык 0:22:28 - Прибавляем резкости - декларации 0:23:00 - Локальные и статические переменные 0:24:07 - Глобальные переменные 0:24:30 - Объявление процедуры 0:24:48 - Объявление записей и invocable-строк 0:26:06 - Важное соглашение 0:26:46 - Hello world! 0:27:32 - Арифметика Icon 0:28:20 - Функции вывода write и writes 0:28:52 - Присвоение значений 0:29:30 - Сравнение величин 0:30:04 - Оператор if 0:31:21 - while do и until do 0:33:11 - Логические операторы & (и) и | (или) 0:34:05 - Проверка переменной на наличие значения 0:35:23 - Пример использования invocable 0:36:51 - Icon - обычный императивный язык (типа Бэйсика или Паскаля)? 0:37:23 - Генераторы, контексты, бэктрекинг 0:39:03 - Как создаётся контекст 0:39:18 - Оператор to 0:39:53 - Конструкция every 0:41:44 - Генератор, который "отдал" всё 0:42:08 - Блок кода в контексте every 0:45:09 - Список вычислений (совычисление) в контексте every 0:47:07 - ! - оператор выбора 0:49:05 - Генераторные выражения можно складывать 0:50:14 - | - оператор альтернативы 0:53:00 - Бэктрекинг и &fail 0:54:24 - Генератор с перезарядкой 0:55:23 - Принудительное ограничение 0:55:38 - Генерация бесконечных последовательностей - seq() 0:56:54 - Совычисления (более подробно) 1:00:18 - Прощание
0:00:00 - Вступление 0:01:29 - Предупреждение 0:01:57 - Зачем рассматривать старые языки и почему не стыдно "изобрести велосипед" 0:07:43 - Почему лекции такие длинные и их неожиданное применение 0:08:37 - "Поехали!" 0:08:44 - Строка - универсальный и важнейший тип данных 0:09:50 - Специализированный язык для работы со строками 0:10:18 - Регулярные выражения и их главный недостаток 0:12:04 - Снобол и его авторы 0:12:36 - Р.Грисуолд 0:12:52 - История названий языка 0:14:12 - Использование БНФ и пример кода на Сноболе 0:15:45 - Снобол родил Icon - язык нонконформистов 0:16:31 - Icon жив! 0:17:23 - Книги по Сноболу и Icon 0:18:48 - Чем мы будем пользоваться 0:19:56 - Первый взгляд на язык 0:22:28 - Прибавляем резкости - декларации 0:23:00 - Локальные и статические переменные 0:24:07 - Глобальные переменные 0:24:30 - Объявление процедуры 0:24:48 - Объявление записей и invocable-строк 0:26:06 - Важное соглашение 0:26:46 - Hello world! 0:27:32 - Арифметика Icon 0:28:20 - Функции вывода write и writes 0:28:52 - Присвоение значений 0:29:30 - Сравнение величин 0:30:04 - Оператор if 0:31:21 - while do и until do 0:33:11 - Логические операторы & (и) и | (или) 0:34:05 - Проверка переменной на наличие значения 0:35:23 - Пример использования invocable 0:36:51 - Icon - обычный императивный язык (типа Бэйсика или Паскаля)? 0:37:23 - Генераторы, контексты, бэктрекинг 0:39:03 - Как создаётся контекст 0:39:18 - Оператор to 0:39:53 - Конструкция every 0:41:44 - Генератор, который "отдал" всё 0:42:08 - Блок кода в контексте every 0:45:09 - Список вычислений (совычисление) в контексте every 0:47:07 - ! - оператор выбора 0:49:05 - Генераторные выражения можно складывать 0:50:14 - | - оператор альтернативы 0:53:00 - Бэктрекинг и &fail 0:54:24 - Генератор с перезарядкой 0:55:23 - Принудительное ограничение 0:55:38 - Генерация бесконечных последовательностей - seq() 0:56:54 - Совычисления (более подробно) 1:00:18 - Прощание
