|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||||||
Как работает цикл do?11.05.2020, 14:55. Показов 3832. Ответов 57
Метки нет (Все метки)
Код отсюда http://lisper.ru/pcl/macros-st... constructs
0
|
||||||
| 11.05.2020, 14:55 | |
|
Ответы с готовыми решениями:
57
Цикл: как работает цикл в цикле Цикл работает неправильно, в то время как POST работает
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 14.05.2020, 22:51 | |
|
Ну вот, ляпнул, а теперь писать.
Диалектов много, я про Common Lisp.Лисп не только язык, но и В лиспе собраны хорошие вещи из функционального программирования. Нет разделения на утверждения и выражения, есть только выражения, и они всегда возвращают значения и могут быть частями других выражений. Функции являются гражданами первого класса - их можно передавать аргументами в другие функции или возвращать в качестве значений. Поддерживаются замыкания - "упаковка" данных в функцию. Хорошо поддерживается тип данных "список", удобный для функционального программирования. Но сам по себе язык нельзя назвать функциональным. Присваивание вместе с замыканиями может порождать интересные эффекты: например, функция без аргументов может служить неограниченным источником данных, и не нужны ни "итераторы", ни "генераторы". Кстати, оператор присваивания расширяемый, то есть нет ограничений на "левую часть" присваивания. Продуманная, проверенная временем библиотека. Кроме списков поддерживается джентльменский набор типов данных, среди которых массивы (в том числе многомерные), ассоциативные массивы, потоки. К традиционным типам относятся конс-ячейки (из которых, в частности, состоят списки) и символы. Развитая система исключений и рестартов. На участке программы, где может произойти ошибка, можно предусмотреть несколько способов её исправления, и если она произойдёт, можно отправиться к этому месту и выбрать способ исправления. А ещё с помощью этого механизма можно реализовать аналог питоновского yield. Необычное и мощное ООП, основанное на генеричных функциях и множественной диспетчеризации. Программа на лиспе обычно состоит из списков, и синтаксис её очень прост. Если привыкнуть к спискам, оказывается, что с их помощью можно не только программировать, а просто записывать, формализовывать что угодно. В лиспе такая запись может стать программой. То есть лисп позволяет программировать в терминах предметной области. В частности, благодаря синтаксической абстракции - возможность добавлять собственные синтаксические конструкции. В других языках обычно бывает фиксированный набор "ключевых слов". В лиспе программист сам может определить "ключевые слова" с произвольным, нужным ему поведением. Даже запись языка можно настраивать. Необязательно писать скобками. Процедуру чтения можно настроить так, что программа на питоне будет прочитана как программа на лиспе. (Хотя это, вероятно, непросто, потому что синтаксис питона сложный.) При этом в лиспе всегда доступен весь язык. Нет никакого препроцессора - лисп сам себе препроцессор. Вообще, язык с долгой традицией, история которого началась в пятидесятых. У него особый запах. Я думаю, запах - главное. Добавлено через 19 минут Common Lisp - абсолютно стабильный язык. В девяностых его стандартизировали, с тех пор стандарт не менялся и не ожидается. Так что можно расчитывать, что написанный сегодня код будет работать и через двадцать лет. Такая стабильность возможна благодаря расширяемости языка. Нет необходимости дожидаться следующей версии, чтобы получить новые фичи. Всё можно сделать библиотекой. Не нравятся стандартные операторы цикла - есть библиотека. Нужна интерполяция строк - есть библиотека. Захотелось сопоставления с образцом - есть библиотека.
3
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 15.05.2020, 12:36 | ||
Стандартизации, конечно, никакой нет. Стандартизация ― это, вообще, серьёзно, это юридический документ. Не так много языков имеют настоящие стандарты. Есть распространённые библиотеки, которые стали фактически стандартными. Например, если нужны регулярные выражения, вряд ли кто-то будет использовать что-либо помимо cl-ppcre. Но вообще, стандартизация ― ответственное дело, даже если она не юридическая. Если библиотека становится стандартной, ей трудно развиваться дальше. Она же как бы высечена в камне. Линукс - ну, может, напоминает... А может, и не напоминает. Но, кстати, операционную систему точно напоминает. В «обычном языке» есть границы тому, что можно сделать в рантайме, и поэтому перезапуск программы ― это нормально. В лиспе ограничений рантайма нет: всё можно доопределять, переопределять, инспектировать. Поэтому зачем его перезапускать? Кроме того, в одном образе вполне могут сосуществовать разные системы. Например, если он используется как веб-сервер, то одновременно может обслуживать несколько несвязанных сайтов. Поэтому само собой появляется желание, чтобы один образ лиспа отвечал бы за всё. А это ― бессознательная ностальгия по лисп-машинам. Мало кто их видел, но в древности были компьютеры, построенные для лиспа, и там лисп был насквозь, сверху донизу, от драйверов до пользовательских приложений. Один образ лиспа с единообразной архитектурой и абсолютной интроспекцией. Какая-нибудь ссылка нужна, пусть будет эта: https://groups.google.com/forum/#!searchin/comp.lang.lisp/pitman$20zmacs%7Csort:date/comp.lang.lisp/Ama0ds7VXDg/K00pyGSq724J Добавлено через 9 минут Но вообще, всё на любителя, всё индивидуально. Чего в лиспе нет, того нет. Статическая типизация - нет. Ручное управление памятью - нет. Лень - нет. Даже на хвостовую рекурсию рассчитывать не приходится. Конечно, лисп даёт возможность реализовать какие угодно подъязыки в рамках самого лиспа, но писать язык - в любом случае непростое дело, не лучше ли взять другой, готовый? Короче говоря, главное - запах. Кому нравится, кому не нравится.
1
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 15.05.2020, 14:31 | ||
|
1
|
||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 15.05.2020, 14:58 [ТС] | |
|
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 15.05.2020, 15:13 | |
|
В CL есть декларации типов. Их можно использовать и для скорости, и для дебага. Также компилятор может выводить типы, и SBCL, например, этим активно занимается. То есть CL без явных типов и Python без явных типов - две большие разницы. Но я не великий специалист по типам и никогда не думал, насколько CL в принципе совместим со строгой типизацией. Наверно, есть серьёзные препятствия - во-первых, вероятно, конс-ячейки. Неспроста в функциональных языках с типизацией (Haskell, ML) списки однородные, а ведь это совсем не то. Короче говоря, динамическая типизация - это фича.
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 15.05.2020, 15:29 [ТС] | |
|
Перенес обсуждение этой особенности в другую тему В Лисп нету плагина статической типизации .
0
|
|
|
Просто Лис
|
|||
| 15.05.2020, 16:40 | |||
|
Не по теме:
Но вот чтобы включил - и всё заработало, такого нет.
0
|
|||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 15.05.2020, 16:43 | |
|
0
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|||
| 15.05.2020, 18:21 [ТС] | |||
|
Добавлено через 1 час 24 минуты
0
|
|||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|||
| 15.05.2020, 19:31 | |||
|
1
|
|||
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
|
| 15.05.2020, 19:58 [ТС] | |
|
Не по теме: Изучать язык нужно или специальный для работы по профессии или специфический для определенного хобби или из серии детских учебных или такой, который требуют в учебном заведении. Если не хватает денег, то такой, который даст возможность заработать. Затем, после изучения вышеперечисленного, можно выбрать язык для расширения кругозора. Мы не знаем, на каком уровне человек находится. Для Sicp Schema или Python при знании английского нужен. Кому то Pascal из ностальгии может хотеться изучать по старой интересной книге. Добавлено через 16 минут Кое-что неправильно написал в последовательности изучения языков. Может быть не надо было постить свою точку зрения.
0
|
|
|
Заблокирован
|
|
| 16.05.2020, 00:41 | |
|
Рыжий Лис, я как раз сейчас Rust учу. Книга Бленди и Орендорфа "Программирование на Rust" неплоха. Опять-таки не для новечков в программировании. Тут лучше книг по Си ничего нету. Но кода там не так много. В смысле такого когда, где на написано от начала до конца проге показывается работа тех или иных механизмов языка. Шутка-ли, в книге чуть больше 500 страниц. В "Программирование на Clojure" их почти 900. Там больше кода и. Прочих мелочей.
Ну а на Lisp я бы, все-таки советовал обратить внимание:это, как минимум, поможет в понимании алгоритмов)
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 16.05.2020, 02:42 | |
|
Сам по себе CL скрывает алгоритмы под капотом. Как сортирует sort? Как устроены хеш-таблицы? "Так эффективно, как руками не напишешь."
Но книжки хорошие есть - Грэм, Норвиг.
1
|
|
|
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,755
|
||||||
| 16.05.2020, 10:33 [ТС] | ||||||
|
Здесь http://cybern.ru/lisp-cycles.html написано
Менее массивны, и не являются хорошим тоном использование следующих функций: Бесконечный цикл:
0
|
||||||
|
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
|
|
| 16.05.2020, 11:56 | |
|
2
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||||
| 16.05.2020, 12:03 | ||||||||
|
Если нужно повторять набор действий без конца, do не нужен. Это называется simple loop - простой loop:
А бывает loop с ключевыми словами, это другое дело. Он позволяет итерировать с числовымы счётчиками, по стандартным коллекциям, может выступать аналогом while, поддерживает несколько способов аккумулирования результатов, поддерживает локальные переменные. Советую почитать "Loop для чёрных поясов" в пкл.
0
|
||||||||
| 16.05.2020, 12:03 | |
|
Как работает цикл? Как работает цикл for? как работает цикл while Как работает цикл Как работает этот цикл? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|