|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||||||||||
Lisp без скобок10.01.2020, 12:33. Показов 4801. Ответов 15
Метки нет (Все метки)
Почему бы не заменить скобки отступами? Всё-равно код приходится форматировать отступами, так как неотформатированный код нечитабелен.
Достаточно простого, однопроходного препроцессора. Наверное, можно даже макрос на Lisp написать. Чтобы код:
1
|
|||||||||||
| 10.01.2020, 12:33 | |
|
Ответы с готовыми решениями:
15
Операторный стиль Lisp-а, без использования рекурсии Книги или другой источник, где описана история версий Lisp и Common Lisp Организация циклов в Lisp (bee lisp demo) |
|
331 / 199 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
||
| 12.01.2020, 16:00 | ||
|
А так вроде никто не мешает. приниципиальная Возможность в стандарт заложена и это дело время от времени переизобретают что бы вновь уйти в забвение ![]() https://cliki.net/readable
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 12.01.2020, 16:24 | |
|
А потом окажется, что лямбды можно только однострочные.
1
|
|
|
Заблокирован
|
|
| 13.01.2020, 09:14 | |
|
А зачем? Если говорить о блочной структуре scheme, то будет не понятно где начинается внутреннее определение, и где оно заканчивается
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||||||||||||
| 13.01.2020, 12:28 [ТС] | |||||||||||||
|
И при желании можно записать всё в одну строку, используя скобки (как и раньше).
0
|
|||||||||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 14.01.2020, 01:50 | |
|
А как понять, что в восьмой строке guess, а не (guess)?
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|
| 14.01.2020, 22:58 [ТС] | |
|
0
|
|
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||
| 15.01.2020, 00:21 | ||||||
|
А в другом примере, где lambda после sqrt-iter, это последнее слово без скобок. Наверно, надо к этой поправке добавить поправку об индентации следующей строки, особенно на случай форм типа begin/progn.
Добавлено через 1 минуту А вот пустую begin, наверно, либо со скобками записывать, либо вводить слово pass. Добавлено через 11 минут Ещё для тех лиспов, где есть ключевые слова, нужно и для них внести поправки, чтобы можно было писать
0
|
||||||
|
Супер-модератор
|
||
| 15.01.2020, 09:37 | ||
|
И, главное, зачем убирать скобки из Лиспа? Популярности Лиспу это вряд ли прибавит. А тем, кто Лисп "принял душой", скобки не мешают. Своего мнения не навязываю.
0
|
||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
||||||||
| 15.01.2020, 10:09 [ТС] | ||||||||
На практике вряд ли кто-нибудь считает скобки - скорее полагаются на то, что количество скобок соответствует форматированию. Мне даже в C# скобки (фигурные) мешают (и точки с запятой тоже). Занимают место на экране. А при рефакторинге делают весь код ниже невалидным на время, что сильно замедляет работу интеллисенс и прочих анализаторов кода. ИМХО "позиционный" синтаксис лучше "скобочного".
0
|
||||||||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||||||
| 15.01.2020, 10:13 [ТС] | |||||||
0
|
|||||||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||||||||
| 15.01.2020, 13:04 | ||||||||
Сообщение было отмечено transformator.t как решение
Решение
Запись S-выражениями - вид формализации, не обязательно подразумевающий лисп. Однако лисп имеет преимущество при работе с ними, потому что их можно трактовать хоть как данные, хоть как код. Кроме прочего, что показывается практика программирования на отступах? "Код на питоне читается как псевдокод!" - больше ничего не приходит на ум. Всё вполне заурядно, включая тенденцию к уменьшению уровня вложенности. S-выражения - киллер-фича, а отступы не киллер-фича.
3
|
||||||||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||||||||
| 15.01.2020, 14:04 [ТС] | |||||||||
ИМХО было бы удобно использовать некоторые дополнительные соглашения по синтаксису S-выражений - запись без скобок, операторы, частичное применение, генераторы коллекций, явное задание стратегии вычислений и т.п.
0
|
|||||||||
|
1064 / 985 / 153
Регистрация: 10.08.2015
Сообщений: 5,378
|
|
| 17.01.2020, 13:43 | |
|
0
|
|
|
Заблокирован
|
||||||
| 21.01.2020, 23:21 | ||||||
|
Оставлю тут..
Язык Shen. Выглядит как какая-то смесь Sheme, CL, CLojure, ML и Prolog. Подробнее тут вот пример qsort на языке
1
|
||||||
|
Заблокирован
|
|||||||||||||||||||||||||||||||
| 22.01.2020, 15:56 | |||||||||||||||||||||||||||||||
|
Почитал вчера немного мануал - прикольная штука. Можно сопоставить с Clojure. Реализован, кстати, на Common Lisp.
Функция которая складывает все цифровые в списке. Список там заключается в квадратные скобки, как вектор в Clojure.
В коде выше - X соответствует первому элементу (first coll), a Y хвосту (rest coll)
Подумал, как можно избавится от лишнего когда типа (empty? (rest xs)) и вспомнил про безусловное выполнение в CL. Так будет лучше.
1
|
|||||||||||||||||||||||||||||||
| 22.01.2020, 15:56 | |
|
Помогаю со студенческими работами здесь
16
Парсер lisp на lisp
Делегаты и метода со скобками и без скобок Макрос вызова функции без скобок Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|