- 81
- 31 023
ЛШЮП
Russia
Приєднався 31 тра 2021
20a5b063-aed6-4fcf-9cf3-e98419d69056
ЛЕТНЯЯ ШКОЛА ЮНЫХ ПРОГРАММИСТОВ ( сокращенно ЛШЮП )
Обучаем школьников программированию с 1976 года
г.Новосибирск, Россия
ЛЕТНЯЯ ШКОЛА ЮНЫХ ПРОГРАММИСТОВ ( сокращенно ЛШЮП )
Обучаем школьников программированию с 1976 года
г.Новосибирск, Россия
Haskell - лень против строгости #Хаскелл
00:00:00 - Начало
00:02:43 - Что такое Хаскелл
00:03:04 - История
00:09:08 - Книги по #Хаскелл
00:12:29 - QR-код на скачивание
00:12:38 - Установка Haskell platform
00:14:30 - Онлайн-компиляторы
00:15:22 - #hugs98
00:17:45 - Важнейшие характеристики языка
00:18:16 - Чистота
00:22:20 - Механизм присвоения значений символическим именам
00:24:48 - Ленивые вычисления
00:26:02 - Функциональность
00:26:38 - Сопоставление с образцом
00:27:23 - Вывод типов
00:29:30 - Базовые конструкции
00:29:48 - Встроенные типы данных
00:30:58 - Агрегаты данных
00:31:22 - #Списки
00:33:23 - #Кортежи
00:34:19 - #Функции
00:35:17 - Пример функции одного переменного
00:37:58 - Пример функции двух переменных. #Каррирование
00:40:00 - #Факториал - пример разных синтаксических форм одного и того же алгоритма
00:45:45 - Функции для работы со списками
00:48:11 - Рекурсия на списках. Пример сопоставления с образцом
00:51:00 - Функциональные аргументы
00:53:44 - Польза каррирования
00:55:01 - #QuickSort
00:57:03 - Интервалы
00:59:28 - Генераторы списков
01:01:00 - Анонимные функции
01:02:31 - Функции высших порядков
01:03:08 - map, filter, fold
01:03:24 - #map
01:04:30 - #filter
01:04:36 - Свёртки
01:07:03 - Смысл термина #fold
01:07:48 - fold в картинках
01:09:08 - Зачем нужны две свёртки?
01:09:57 - Правая и левая #свёртки изнури
01:11:36 - Лень обеспечивает правой свёртке работу с бесконечными списками
01:14:19 - Реализация #foldl и #foldr
01:14:49 - Прощание
Автор: Файфель Б.Л. СГТУ, Саратов catstail@ya.ru
00:02:43 - Что такое Хаскелл
00:03:04 - История
00:09:08 - Книги по #Хаскелл
00:12:29 - QR-код на скачивание
00:12:38 - Установка Haskell platform
00:14:30 - Онлайн-компиляторы
00:15:22 - #hugs98
00:17:45 - Важнейшие характеристики языка
00:18:16 - Чистота
00:22:20 - Механизм присвоения значений символическим именам
00:24:48 - Ленивые вычисления
00:26:02 - Функциональность
00:26:38 - Сопоставление с образцом
00:27:23 - Вывод типов
00:29:30 - Базовые конструкции
00:29:48 - Встроенные типы данных
00:30:58 - Агрегаты данных
00:31:22 - #Списки
00:33:23 - #Кортежи
00:34:19 - #Функции
00:35:17 - Пример функции одного переменного
00:37:58 - Пример функции двух переменных. #Каррирование
00:40:00 - #Факториал - пример разных синтаксических форм одного и того же алгоритма
00:45:45 - Функции для работы со списками
00:48:11 - Рекурсия на списках. Пример сопоставления с образцом
00:51:00 - Функциональные аргументы
00:53:44 - Польза каррирования
00:55:01 - #QuickSort
00:57:03 - Интервалы
00:59:28 - Генераторы списков
01:01:00 - Анонимные функции
01:02:31 - Функции высших порядков
01:03:08 - map, filter, fold
01:03:24 - #map
01:04:30 - #filter
01:04:36 - Свёртки
01:07:03 - Смысл термина #fold
01:07:48 - fold в картинках
01:09:08 - Зачем нужны две свёртки?
01:09:57 - Правая и левая #свёртки изнури
01:11:36 - Лень обеспечивает правой свёртке работу с бесконечными списками
01:14:19 - Реализация #foldl и #foldr
01:14:49 - Прощание
Автор: Файфель Б.Л. СГТУ, Саратов catstail@ya.ru
Переглядів: 231
Відео
Лекция: Системы счисления | ЛШЮП 2024
Переглядів 96Місяць тому
Тема лекции: Системы счисления для коллег, студентов и школьников 0:00:00 - Историческое введение. 0:16:09 - Система счисления с основанием p. Теорема о единственности представления. 0:26:44 - Алгоритм перевода. Двоичная и шестнадцатеричная системы. 0:35:48 - Системы счисления с большим основанием. Система BASE-64. 0:50:55 - Арифметика в двоичной и шестнадцатеричной системе счисления. 0:55:56 -...
"Семь языков за семь дней" уходит на каникулы.
Переглядів 1355 місяців тому
А пока мы начинаем Летнюю Школу Юных Программистов (ЛШЮП №49) и будем выкладывать лекции из НГУ г.Новосибирск. Подписывайтесь на наши социальные сети, чтобы первыми узнавать новости о Летней школе юных программистов! - Telegram: t.me/LSHUP - Вконтакте: lshup - Яндекс.Дзен: zen.yandex.ru/ssyp - Официальный сайт ЛШЮП: ssyp.ru #ЛШЮП 2024 #Новосибирск
Io - бесклассовое ООП! #io
Переглядів 2,7 тис.6 місяців тому
Тема лекции: Язык программирования #IO #ИО Автор: Файфель Б.Л. СГТУ, Саратов catstail@ya.ru
Человеческий капитал в постиндустриальную эпоху. Лекция
Переглядів 1656 місяців тому
Тема лекции: Человеческий капитал в постиндустриальную эпоху. - Что происходит с образованием? - История образования. - Лучше, дешевле и быстрее. - Сингулярность (шутка). Поспорить можно и нужно в комментариях под этим видео. Автор: Б.Л.Файфель
Руби - программируем с удовольствием! #ruby
Переглядів 6157 місяців тому
Тема лекции: Язык программирования #Руби #ruby Автор: Файфель Б.Л. СГТУ, Саратов catstail@ya.ru
Лисп - прививка от посредственности #Lisp
Переглядів 3,3 тис.8 місяців тому
Тема лекции: Язык программирования #Лисп #lisp Автор: Файфель Б.Л. СГТУ, Саратов catstail@ya.ru Презентация из видео: disk.yandex.ru/i/vF32_I_76bdnJg
(старая версия лекции) Лисп - прививка от посредственности #Lisp
Переглядів 14 тис.8 місяців тому
Лекция с улучшенным звуком: ua-cam.com/video/xU7K0GI2zD0/v-deo.html Тема лекции: #Лисп #lisp Поправка: 07:25 Фото с А.П.Ершовым сделано в 1987м Презентация из видео: disk.yandex.ru/i/vF32_I_76bdnJg Файфель Б.Л. СГТУ, Саратов catstail@ya.ru
Лекция «Листая страницы истории: история создания компьютера от Паскаля до Джобса»
Переглядів 214Рік тому
Лекция «Листая страницы истории: история создания компьютера от Паскаля до Джобса»
Как настроить своё имя на Discord #ЛШЮП #Новосибирск
Переглядів 58Рік тому
Как настроить своё имя на Discord #ЛШЮП #Новосибирск
Мастерская №6 "Глупое устройство" #ЛШЮП 2023 #Новосибирск
Переглядів 464Рік тому
Мастерская №6 "Глупое устройство" #ЛШЮП 2023 #Новосибирск
Лекция "Коварная точка" #ЛШЮП 2022 #Новосибирск
Переглядів 3702 роки тому
Лекция "Коварная точка" #ЛШЮП 2022 #Новосибирск
Мастерская «Обработка естественных языков на ДНК и белках» #ЛШЮП 2022 #Новосибирск
Переглядів 832 роки тому
Мастерская «Обработка естественных языков на ДНК и белках» #ЛШЮП 2022 #Новосибирск
Мастерская №7 «ЛШЮП ИнформБюро» #ЛШЮП 2022 #Новосибирск
Переглядів 722 роки тому
Мастерская №7 «ЛШЮП ИнформБюро» #ЛШЮП 2022 #Новосибирск
Мастерская №6 «Черепашка и программирование» #ЛШЮП 2022 #Новосибирск
Переглядів 672 роки тому
Мастерская №6 «Черепашка и программирование» #ЛШЮП 2022 #Новосибирск
Мастерская №5 «Вставайте, Граф, Вас ждут великие дела!» #ЛШЮП 2022 #Новосибирск
Переглядів 1872 роки тому
Мастерская №5 «Вставайте, Граф, Вас ждут великие дела!» #ЛШЮП 2022 #Новосибирск
Мастерская №4 «Сгенерируй их всех!» #ЛШЮП 2022 #Новосибирск
Переглядів 612 роки тому
Мастерская №4 «Сгенерируй их всех!» #ЛШЮП 2022 #Новосибирск
Мастерская №3 «Много бит тому назад» #ЛШЮП 2022 #Новосибирск
Переглядів 832 роки тому
Мастерская №3 «Много бит тому назад» #ЛШЮП 2022 #Новосибирск
Мастерская №1 «Отличаем Натали Портман от Киры Найтли» #ЛШЮП 2022 #Новосибирск
Переглядів 622 роки тому
Мастерская №1 «Отличаем Натали Портман от Киры Найтли» #ЛШЮП 2022 #Новосибирск
Мастерская №2 «Поколение Логики» #ЛШЮП 2022 #Новосибирск
Переглядів 672 роки тому
Мастерская №2 «Поколение Логики» #ЛШЮП 2022 #Новосибирск
Лекция Анализ файла с ДНК на Python #ЛШЮП 2022 #Новосибирск
Переглядів 2832 роки тому
Лекция Анализ файла с ДНК на Python #ЛШЮП 2022 #Новосибирск
Техническое открытие #ЛШЮП 2022 #Новосибирск
Переглядів 922 роки тому
Техническое открытие #ЛШЮП 2022 #Новосибирск
Руководство к участию в турах на платформе Яндекс.Контест #ЛШЮП22
Переглядів 6752 роки тому
Руководство к участию в турах на платформе Яндекс.Контест #ЛШЮП22
Введение в Python урок 28 из 28 (конец)
Переглядів 753 роки тому
Введение в Python урок 28 из 28 (конец)
Введение в Python урок 27 из 28 (домашнее задание)
Переглядів 263 роки тому
Введение в Python урок 27 из 28 (домашнее задание)
Введение в Python урок 25 из 28 (домашнее задание)
Переглядів 203 роки тому
Введение в Python урок 25 из 28 (домашнее задание)
Введение в Python урок 23 из 28 (домашнее задание)
Переглядів 213 роки тому
Введение в Python урок 23 из 28 (домашнее задание)
35:20 Снова прошу прощения, но это неправда, для Haskell существует интерпретатор GHCi который позволяет работать с языком в режиме REPL. "GHCi is GHC's interactive environment, in which Haskell expressions can be interactively evaluated and programs can be interpreted." Допускаю небольшую вероятность того, что я что-то не понял в утверждении о необходимости создавать файл с описанием функции для проверки её работы.
В консоли можно вводить функции. Но это не слишком удобно. И крайне неудобно отлаживать (когда исходник меняется чуть-чуть). Удобнее выполнять корректировки в отдельном исходнике.
@@БорисФайфель, я понял, речь об удобстве, всё таки, а не о непреодолимой невозможности описания функций в REPL. Понятное дело, что-то громоздкое в режиме REPL делать не следует, оно для того, чтобы быстро проверить какую-то идею и принять решение вносить или не вносить её в исходник.
@@ivanprokofyev о чём я и говорю.
@@БорисФайфель , мне, всё таки, кажется, что о другом была речь.
18:22 У меня нет академического образования Computer Science, я самоучка, но хочу возразить на утверждение о том, что такое побочные эффекты. 1. Нельзя усвоить это понятие, если не "пощупать" в оригинале процедуры и функции, что в наше время возможно, насколько понимаю, только в Pascal. 2. Первое нужное историческое понятие, это подпрограмма - специально вынесенный из осн. программы фрагмент кода для выполнения повторяющихся действий, к которому возможно обратиться из основной программы и после завершения работы п.п. вернуться в поток выполнения осн. программы в место вызова п.п.. 3. П.п. могут выполнять действия, например, вывод текстовых строк и/или производить вычисления. 4. В какой-то исторический момент понятие "подпрограмма" разделяется на два: процедура и функция. 5. Затем за процедурами закрепилась "обязанность" совершать действия (вывод строк, обращение к файлам, инициализация чего нибудь и т.д.), но не вычисления. За функциями - производить вычисления и больше ничего, и возвращать их вместо себя (вместо своего имени), т.е. функция, это значение и это очень важно. 6. Исторически позже произошло стирание границы между двумя понятиями, при этом понятие "процедура" было забыто а подпрограммы стали называться функциями и больше никак. 7. Итог: если функции совершают что-то отличное от вычислений, то это функции с побочными эффектами, если только вычисления, это чистые функции. -Влияние на глобальную переменную, это частный случай побочного эффекта и в общем неудачный пример, т.к. использование глобальных переменных, это плохая практика программирования.- Неравнодушных отсылаю к книге А.В. Столярова, "Программирование: Введение в профессию."
11:45 К книге А.Холомьёва лучше не прикасаться. В 2018 году я попытался въехать в Haskell. Попалась мне книга А.Холомьева. Её невозможно читать, автор писал так, как будто с дебилами заигрывал. Автор (наверное) попытался написать для новичков, но у него не получилось потому, что он уже сам забыл, что значит быть новичком. Изложенное в книге понятно тем, кто уже умеет в Haskell (книга для своих), т.к. им не придётся в муках додумываться о том, что упустил и/или опустил автор в своём изложении. Начинающих книга запутает, т.к. написана, как сборник каких-то тезисов, это не учебник. Вторая книга, которая попала мне в руки, Д.Шевченко, "О Haskell по-человечески", она чуть лучше. Параллельно с чтением узнал про уроки LYAH, переключился на них, тут же узнал о книге Р.В.Душкина, "ФП на языке Haskell" и переключился на него, он получше пишет, тоже небезупречен, но это уже академический учебник. Все книги объединяет (LYAH в меньшей степени) то, что авторы не понимают с чего надо начинать объяснения и каждый начинает со своего угла. Я бы посоветовал при чтении Шевченко и Холомьева не пытаться что-либо понять, а просто пробежать по тексту и взять то, что будет понятно. Считаю это подходящим потому, что точки входа в тему в каждой книге разные и после пары, другой заходов в тему из разных углов следующий источник, который уже поосновательнее и посложнее, воспринимается проще. Возможно будет лучше, если совсем не брать в руки книги Холомьёва и Шевченко.
Это ваше оценочное суждение
@@БорисФайфель , в таком случае, так мы далеко можем зайти. Я могу ответить: "А это Ваше суждение", т.е. его цена не выше моего. На самом деле, то были мои соображения и описание моего опыта.
@@ivanprokofyev а зачем оценивать друг друга? Пусть оценивают читатели и слушатели. 😀
@@БорисФайфель , вот я бы и не хотел чтобы мои соображения без моего согласия называлия суждениями, да ещё и оценочными.
@@ivanprokofyev в чём разница между "соображением" и "суждением"? 😀
9:17 Всех прошу простить за замечание, но этот учебник свободно доступен online в HTML виде. Употреблять такое в переводе вредно для умственного здоровья.
Незначительная поправка: книга А.С. Мена "Изучаем Хаскелл" - это перевод с английского. Но автор - явно не англосакс! 😀
Радостно видеть и слышать!
Да здравствуют умные люди и созидательный труд! Нет войне, разрушениям и убийставам! Всем людям мира, добра и здоровья!
Добавили таймкоды
Спасибо за видео 👍
Замечательная лекция. Всё ужк видно в современном мире - действительно, широко мыслящий ум - это недостаток с точки зрения бизнеса
1:00:00 игрушка очень интересная!
48:05 а что считается программированием без ветвления или без циклов?
25:00 МОЖНО, если первое выражение списка вычисляет функцию. Например, в scheme ((lambda (x) (* x x)) 5) вычислит 25. В clojure ((vector 3 4 5) 1) Вычислит 4. Первым выражением в списке вовсе не обязано быть имя функции
Витгенштейн не просто философ, он же логик, как математик
Как так то((((
Летом нужно отдыхать!
Оалитаьатндсдш
Интересное видео, спасибо.
Начало 2:05
Очень похоже на первые версии js, когда ещё не было классов там
Очень жаль, что со звуком снова какая-то печаль... Скрежет петлички об одежду как будто.
Михаил: Я опускаю руки. И спасибо за предыдущие консультации и помощь!!! Мне этот звук нравится больше, чем в "старой лиспе". Слушаю нормально.
@@SSYP Михаилу привет, рад помочь. Да, действительно звук лучше. И ещё теперь гораздо проще не фиксироваться на огрехах.
Развитие идей Смоллтолка? Спасибо!
только начал смотреть! рад, что проект не заброшен спасибо!
Проект и не будет заброшен! Не беспокойтесь!
15:44 А возможно нам (всем) договориться и отказаться от высказываний "равно", "равняется"? После знакомства с Haskell язык отказывается такое выговаривать. ) Я знаю, что в каждом языке своя терминология, но ... икс равен может быть только иксу, утверждать, что он равен чему-то ещё, как странно. Короче, договоримся говорить "переменная связана со значением"? Не думаю, что образовательный процесс от этого введения пострадает.
Резонное замечание. Жаль, что поздно заметил. Но с традициями бороться трудно...
@@БорисФайфель, всё равно, спасибо за положительный ответ, другие прочитают, призадумаются, только польза будет. )
37:46 -This is have sense!- It makes sense. Успешное выполнение процесса в Linux возвращает 0.
* this has sense или лучше It makes sense
@@Don_Miguel, спасибо! ) У меня не было русской раскладки в Linux, а английский у меня, чуть больше, чем никакой. Весь комментарий я хотел написать на английском, но я себя проверяю сначала с помощью словаря и похоже, что на автомате скопировал и вставил перевод. ) Раскладку в Linux сделал. )
Превосходно!
Новая лекция из серии "7 языков программирования" в процессе. Мы начинаем очную, оффлайн школу для юных программистов в Новосибирске на базе НГУ. Вы можете рассказать о нас своим друзьям и коллегам. ssyp.ru
Ух, ты дождался новой серии! Надеюсь на выход всей серии целиком
Скоро!
Спасибо за лекцию! Очень интересно было слушать, даже как опытному программисту. Для тех, кто хочет больше практики с Лиспом, рекомендую работу с Emacs, в котором используется собственный диалект Лиспа. А также довольно уникальный дистрибутив Линукс - GNU Guix. Который основан на принципах Nixpkgs и NixOS, но использует Лисп, как основной язык конфигурации.
Очень жаль, но ссылка на презентацию не вставилась. Только скобки - ()
Далее ссылки на презентации будут содержаться в самом видео. Следующий язык Io уже скоро!
@@БорисФайфель очень жду. Спасибо за ваши разъяснения.
Михаил, звук огонь! Вы таки ASIO for All прикрутили лектору?
прикрутил новый микрофон со звуковой платой в разъеме USB. *Микрофон Maono AU-UL10 ( 1500р в DNS ).* А воткнули его в ноутбук 15-летний... и помогло )
Очень похожие структуры не только в питоне, но и js'e, в частности анонимные блоки кода - один в один стрелочные функции, передаваемые в качестве параметров. Глядя на ruby, понимаешь, что это больше способ познакомиться со стилем мышления автора языка
Про LISP мне понравилось больше. Вот интересно, я LISP совершенно не знаю, и мне понадобилось сделать пару макросов для АвтоКада. По примерам я сварганил что хотел, не очень понимая что делаю. А после вашей лекции я понял LISP более концептуально. На Ruby я еще вообще ничего не писал, кроме учебных проектов. Но он меня завораживает. Я изучаю его, мне нравятся и блоки и метапрограммирование. Но если бы я послушал вашу лекцию, ничего не зная о Ruby, я бы так не восхитился. Рубисты говорят, что в Ruby не приходят новички, на него переходят из других языков. Вот вы сравниваете Ruby c Java или C#, но прямой конкурент это Python. Но наверно это для меня ближе, так как я нормально только Питон знаю. Но в тоже время Джависты или Шарписты не перейдут сразу на Ruby, но им иногда тоже нужен скриптовый язык. И они будут выбирать между Питоном Руби или Баш на худой конец.
Да, счастье в динамических языках... А разница между питоном и руби незначительная, можно писать и на том, и на другом, двойное удовольствие
Смотрим с удовольствием!!!
Когда же будет следующая лекция серии? Спасибо.
ua-cam.com/video/mNObvNXXCiA/v-deo.html увы, время внесло коррективы. Планировали раз в неделю, в лучшем случае
@@SSYP спасибо, Михаил, мне выдало :)
Спасибо! Замечательная лекция о превосходном языке программирования, который вечно будет актуальным - о "языке Бога"...
замечательно
Спасибо! Интересная лекция
Лисп очень долго держался на плаву благодоря AutoCAD от компании AutoDesk, - аш до середины первой декады нового нового тысячилетия, когда встроенный интерпретатор AutoLISP заменили компилятором C.
Интерес огромнейший, жду следующих лекций!
Добрый день, когда ждать следующие 6 языков?
Ruby готовится
Спасибо! Отличная лекция, захотелось самому попробовать что-то написать.
Очень странное утверждение о расположении скобок. В любом современном языке спецификации по code-style формируются исходя из удобства, читаемости и понимания кода. Чувствуется устаревшесть языка
У Лиспа код программы - список
Верная мысль. Вот выстраивание скобок "открывающая под закрывающей" как раз и снижает удобство и читаемость. Лиспу уже почти 70... Наши потомки увидят "современные языки" через 70 лет. 😀
В вас говорит привычка. Для меня, например, синтаксис лиспа максимально удобен, а синтаксис питона неудобен
@@lucifer-look- Я все же говорю не о питоне, а C-подобных языках, которых большинство. Питон больше похож на скриптовые языки
@@AKlem2 Си-подобный синтаксис - это интеллектуальная и технологическая катастрофа 20 и 21 века
Lisp значит "шепелявить", а не "лепетать"..
Допустимы оба перевода
Вариант видео с обработанным звуком?
Да. Всё то же самое. И 1 дата в тексте исправлена.
Желательно все ссылки, которые вы приводите в видео, давать так же в закрепленном комментарии или в тексте под самим видео.
Спасибо ! Познавательно.
11:40 Тогда уж Паскаль это супер язык. Пишется почти на английском и на нем можно решить абсолютно любую задачу. Начать программировать на нем может даже ребенок, а при желании даже операционку можно на нем написать.
После языка Паскаль Никлаус Вирт разработал языки Модула и Оберон. Это единственное семейство языков, которые развивались путем упрощения.
@@olegkomlev Согласен. Но не вижу в этом ничего плохого. Посмотрите на Джаву или плюсы, там порог вхождения довольно высок, и это влияет на популярность этих языков. Плюс к ним накрутили массу "сахара" и учебники уже не поспевают за этим, А новичкам приходится нырять в такой код с головой. Я, просто для примера, предпочел голанг для сервисов, но не джаву. Как вспомнишь "Eterprise Edition 'Hello world'" аж мороз по коже. На гите где-то валяется исходник. Хотя, как сказал один хороший человек: "Хороший программист должен начать программировать на новом языке через две недели." Может быть он немного утрирует, но дело, по моему, скорее всего не в языке, а в программисте и задаче. Лично у меня проблемы с JS. Отвык я от такой вакханалии типов...
10:46 от человеческого языки и мышления lisp точно также далек как и ассемблер, а вот си и все его потомки более человеко совместимые так сказать
КГ/АМ. Дед в стазисе застрял. надо ему прививку сделать а то совсем окоченеет.
Поправка: Scala - не функциональный язык, это мультипарадигменный язык (можно писать как в ФП-, так и в ООП-стилях), Erlang - это немолодой язык(релиз был в 1986)
Для меня 1986 г. - это не очень давно... Вот 1956-й - это да.