The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск SBCL 2.4.1, реализации языка Common Lisp , opennews (??), 05-Фев-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


63. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  –1 +/
Сообщение от Аноним (54), 05-Фев-24, 18:09 
> Не нужно вводить понятие приоритета и ассоциативности

Но его нужно вводить, потому что это правила разбора математических выражений. Если на языке решаются реальные задачи, включающие математику, он обязан это делать. Если он это не далает, значит он не язык, а занимательная шутка типа брейнфака, не имеющая отношения к программированию.

> разбирать и вычислить выражение можно за один проход, достаточно просто стэка

Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в 10 ни в 100500 проходов программу распарсить, но не будем использовать её возможности, а заставить людей ковыряться в yблюдском формате.

Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 05-Фев-24, 19:21 
>> Не нужно вводить понятие приоритета и ассоциативности
> Но его нужно вводить, потому что это правила разбора математических выражений. Если
> на языке решаются реальные задачи, включающие математику, он обязан это делать.

В префиксной нотации скобки не обязательны если арность фиксирована. Конкретно в лиспе скобки - это вызов процедуры, поэтому запись (+ * 1 2 3) просто некорректна, потому что * - это процедура и нужно писать так (+ (* 1 2) 3). Таким образом, скобки однозначно определяют порядок вычисления в мат выражении.

>> разбирать и вычислить выражение можно за один проход, достаточно просто стэка
> Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в
> 10 ни в 100500 проходов программу распарсить, но не будем использовать
> её возможности

Можешь дальше писать на жс под электрон и требовать 16Гб памяти под ничего неделание.  

> а заставить людей ковыряться в yблюдском формате.

Ты просто всю жизнь использовал инфиксную запись. Тебе, например, точно также будет неудобно писать справа налево, а кто-то так пишет с рождения.

Ответить | Правка | Наверх | Cообщить модератору

107. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  –1 +/
Сообщение от Аноним (108), 06-Фев-24, 09:49 
>>потому что * - это процедура

(setf * 10)
(print (+ * 1 2 3))
(print (* * 10))

Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +/
Сообщение от Аноним (115), 06-Фев-24, 13:00 
А ты зачем за процедурой в неймспейс данных лезешь?
Ответить | Правка | Наверх | Cообщить модератору

118. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +/
Сообщение от Вы забыли заполнить поле Name (?), 06-Фев-24, 17:00 
>>>потому что * - это процедура
> (setf * 10)
> (print (+ * 1 2 3))
> (print (* * 10))

Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

> (print (* * 10))

Вот это в Scheme работать не будет, т.к. ты пытаешься вызвать процедуру 10, а это не процедура.

Ответить | Правка | К родителю #107 | Наверх | Cообщить модератору

120. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +/
Сообщение от Аноним (120), 06-Фев-24, 19:17 
> Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?

Намёк на особенности lisp-2. Что в лиспе разные пространства имён для разных сущностей.

Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +2 +/
Сообщение от Аноним (77), 05-Фев-24, 19:23 
> потому что это правила разбора математических выражений.

Так в такой записи эти правила не нужны, про ассоциативность

> а заставить людей ковыряться в yблюдском формате

Да уж не накручивайте, писал на лиспе какое-то время - привыкаешь довольно быстро. Бонусом ты сразу видишь в таком выражении, что в каком порядке выполняется. Надо только начать, оно только выглядит страшно по началу

Ответить | Правка | К родителю #63 | Наверх | Cообщить модератору

83. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +1 +/
Сообщение от Вы забыли заполнить поле Name (?), 05-Фев-24, 19:55 
> оно только выглядит страшно по началу

Еще любят приводить примеры с двумя-тремя аргументами. В инфиксной записи сложные выражения читаются ничуть не проще. Во многих кодстайлах даже разрешено добавлять скобки для читабельности и чтобы не надо было вспоминать приоритеты.

Ответить | Правка | Наверх | Cообщить модератору

102. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +/
Сообщение от Аноним (77), 06-Фев-24, 04:52 
Именно так, да. В сложной формуле с кучей + и *, ещё и если всратые пробелы, легко запутаться, кто где первее выполняется. Уж во всяком случае одним взглядом не распарсишь
Ответить | Правка | Наверх | Cообщить модератору

119. "Выпуск SBCL 2.4.1, реализации языка Common Lisp "  +/
Сообщение от n00by (ok), 06-Фев-24, 19:12 
Транслятор Си на сложных выражениях выдаёт предупреждение и просит добавить скобки.
Ответить | Правка | К родителю #83 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру