(старая версия лекции) Лисп - прививка от посредственности
Вставка
- Опубліковано 27 лис 2024
- Лекция с улучшенным звуком: • Лисп - прививка от пос...
Тема лекции: #Лисп #lisp
Поправка: 07:25 Фото с А.П.Ершовым сделано в 1987м
Презентация из видео: disk.yandex.ru...
Файфель Б.Л.
СГТУ, Саратов
catstail@ya.ru
Эта же лекция с нормальным звуком: ua-cam.com/video/xU7K0GI2zD0/v-deo.html
Пока готовят следующие лекции (которые читают в т.ч. офлайн) можно
1) послушать лекцию КОВАРНАЯ ТОЧКА ua-cam.com/video/S4vcl4q8uk8/v-deo.htmlsi=0-B1Ct86u6bulIOv
2) посмотреть курс Python Б.Л.Файфеля
ua-cam.com/play/PLCfM57FK6AQSfJ3H10s3xo5Ns9BFFTSms.html&si=qr0ojNn4QjPnUCtt
Думал гляну пару минут и пойду дальше. В итоге досмотрел до конца и жду про Ruby. Лайк-подписка разумеется. Спасибо!
Спасибо за видео! Жду продолжения!
Лисп очень долго держался на плаву благодоря AutoCAD от компании AutoDesk, - аш до середины первой декады нового нового тысячилетия, когда встроенный интерпретатор AutoLISP заменили компилятором C.
Превосходно!
Поправка автора: Фото с А.П. Ершовым сделано не в начале 2000-х, как сказано в видео, а в 1987 г. Приношу извинения!
Добавили в описание видео. Заодно добавлена карточка про А.П.Ершова на видео о его жизни.
замечательно
Спасибо !
Познавательно.
Интересно вспомнить Lisp, хотя много лет пишу на C#...
Занятный язык!
Классный.
Лисп используется как язык сценариев в установщиках Amiga-подобных систем.
лисп язык сценариев в автокаде (там свой диалект, но это лисп), я считаю это достаточно массовое. clojure это тоже, по сути, лисп только для jvm.
Спасибо! Честно говоря, идея автора изучать языки ради развлечения (или развития) мне показалась спорной. Вы дали повод для просмотра ролика.
Лисп и философский камень 😂😂😂
11:40 Тогда уж Паскаль это супер язык. Пишется почти на английском и на нем можно решить абсолютно любую задачу. Начать программировать на нем может даже ребенок, а при желании даже операционку можно на нем написать.
После языка Паскаль Никлаус Вирт разработал языки Модула и Оберон. Это единственное семейство языков, которые развивались путем упрощения.
@@olegkomlev Согласен. Но не вижу в этом ничего плохого. Посмотрите на Джаву или плюсы, там порог вхождения довольно высок, и это влияет на популярность этих языков. Плюс к ним накрутили массу "сахара" и учебники уже не поспевают за этим, А новичкам приходится нырять в такой код с головой.
Я, просто для примера, предпочел голанг для сервисов, но не джаву. Как вспомнишь "Eterprise Edition 'Hello world'" аж мороз по коже. На гите где-то валяется исходник.
Хотя, как сказал один хороший человек: "Хороший программист должен начать программировать на новом языке через две недели." Может быть он немного утрирует, но дело, по моему, скорее всего не в языке, а в программисте и задаче. Лично у меня проблемы с JS. Отвык я от такой вакханалии типов...
Я будучи студентом тоже писал свой лисп-интерпретатор. А вот с тем что лисп очень близок к человеческому языку не согласен - в каком языке предложения вложены друг в друга? Плюс инфиксная нотация. Вот "if .. Then .. Else .." больше похоже на чел. язык. Или на пример "select .. from .. where ..".
(if (or informal_language high_level_language)
(print "The programming language is human-like.")
(print "The programming language is not human-like."))
А как ты просишь кого-то сложить два числа? )
Сложи два и два. )
Желательно все ссылки, которые вы приводите в видео, давать так же в закрепленном комментарии или в тексте под самим видео.
Quote мне сразу напомнило препроцессор м4
лисп база
Будет ли видео про Emacs Lisp? Было бы здорово.
Я с огромным уважением отношусь к культуре Emacs, но пока не планирую такой материал. (Автор)
Спасибо за видео
44:09 при объснении функции cons второй аргумент был представлен списком (2 3) без квоттирования. Это ошибка? Ведь это же не вычислимый аргумент
Да, это опечатка.
Поправка: Scala - не функциональный язык, это мультипарадигменный язык (можно писать как в ФП-, так и в ООП-стилях), Erlang - это немолодой язык(релиз был в 1986)
Для меня 1986 г. - это не очень давно... Вот 1956-й - это да.
Так а где найти исходники примеров?
что-то со звуком на видео, какие-то помехи все время слышны
Есть такое. Заменили микрофон, посмотрим, что получится.
@@SSYPэто проблема скорее всего не микрофона, а звуковой карты. Точнее говоря переполнения буфера. Готов ради проекта пожертвовать своим временем и вычистить аудио дорожку. Вам это интересно?
10:46 от человеческого языки и мышления lisp точно также далек как и ассемблер, а вот си и все его потомки более человеко совместимые так сказать
42:56 Непонятно почему между пустым списком и Nil ставится знак равенства 🤔 Пустой список можно использовать в циклах, а Nil -- нет. Может быть это специфика языка?
Потому что в Lisp и его диалектах NIL и () - разная запись одного и того же объекта. Интерпретатор Lisp понимает запись () как указатель на NIL. И NIL и () - это одновременно и атом и список.
@@vadimsf5976 спасибо за разъяснение
Пустой список в цикле использовать как пустой инстанс какого-то типа данных?
@@Eimrine скорее в качестве коллекции не содержащей элементов. Одно дело когда есть список, но там нет элементов. И совсем другое когда списка нет)
@@Doctor.Livesey Коллекция - это же один из элементарных типов данных, а в Лиспе из типов данных только составная конструкция из списков, указатель на которую положен в symbol. Коллекция - массив указателей на разнородные типы данных, а в Лиспе вместо массивов - список. Пустой массив - указатель по которому лежит NULL, а пустой список это и есть NULL. Когда в массиве лежит текст, то если это не Паскаль-стиль стрингов то текст должен трэйлиться Нулом; а в составных типах данных Лиспа все лишние указатели надо занулить. Теперь вам всё понятно?
Как будто вернулся в институт. Применять его для математических вычислений и для интерпретаторов - выглядит очень даже применимым. Но тут все может сильно упереться в производительность (нужно пробовать). Ну я с вами не согласен, касаемо принадлежность к естественному языку, обратной польской записью для записи вычислений - только взорвет мозг
Ничего не взорвет. Попробуйте написать на нем что-нибудь относительно большое. Поскольку синтаксис минималистичен, и об него не спотыкаешься, преобразование мыслей в программный код происходит очень быстро. Главное -- подавить в себе желание писать в привычной императивной манере. Или по крайней мере минимизировать использование побочных эффектов.
@@jimgydis я знаю, стиль удобный для автоматизации. Но он не разу не для естественного языка
@@qwfpgjfulну да, не Prolog конечно. Но тоже ничего.
44:24 а почему cons не вычисляет второй аргумент? Квотировать не нужно что ли?
cons вычисляет оба аргумента. Из-за чего возник такой вопрос?
@@БорисФайфель ранее вроде говорилось, что список невозможно вычислить и поэтому его надо квотировать. А здесь он не квотированный.
Где "здесь"? Приведите код или скажите, где это в видео.@@uuuummm9
@@uuuummm9 А ведь ты прав. Выражение на слайде "(cons 1 (2 3))" строго говоря неправильное. Интерпретатор на него скажет, что ты попытался вызвать функцию "2", которой не существует.
Правильно было бы именно квотировать: "(cons 1 `(2 3))"
@@СергейМакеев-ж2н да, на слайде опечатка. Прошу прощения!
Rust будет?
Не исключено. Мне он самому очень интересен.
Lisp значит "шепелявить", а не "лепетать"..
Допустимы оба перевода
Зачем так много языков-то? Лучше бы сделали один язык. И всего делов.
Не, одного мало, а вот двух досаточно было бы. Первых двух - Фортран и Лисп.
Зачем куча ножей повару? Сделали бы один.
@@arzamas1988Так сделали же. Называется шэф-нож. Им всё и режут настоящие повара. А теперь надо сделать шэф-язык.
@@ProcXelA ну делай. Такой же простой как питон, такой же быстрый, как СИ.
Такие попытки неоднократно предпринимались. См. Алгол. Но оказались неудачными. Это противоречит человеческой сущности. И лежит на той же "полке", что и "мечта о справедливом обществе", "всеобщем равенстве" и т.п.
какой смысл изучать непопулярные языка? смысл есть только если вы бессметрны
А какой смысл вообще что-либо изучать? 😀
Чтоб быть в 20 раз продуктивнее лопухов, изучавших только популярные.
Чем уже ниша, тем выше зарплата (только тсс, это секрет).
Чтобы не писать говнокод и не нервировать коллег (непопулярное мнение)
Смысл такой же, как у чтения хороших книг, у путешествий, у общения с людьми другой культуры. Это расширяет ваш опыт, и позволяет интересней прожить жизнь. Попробуйте понять лисп - вы по-другому начнёте смотреть на программирование.