Re[14]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 11:43
Оценка: :)
Здравствуйте, Mirrorer, Вы писали:

M>Здравствуйте, FDSC, Вы писали:


FDS>>Можете дать какую-нидуь ссылку на Лисп (компилятор и, хотя бы, стандарт, а лучше книгу на русском), а то у меня от поиска в интернете крышу сносит

M>Перевод классической Structure and Interpretation Of Computer Programs
M>здесь

К сожалению скачать не удалось. Может быть в другой раз попробую, что-то со связью...
А что это за расширение такое — *.ps?

M>Интерпретатор

M>здесь

M>Там не совсем лисп, а Scheme, диалект лиспа, но общее представление он дает..
Re[17]: Насколько важен синтаксис языка?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 06.09.06 11:45
Оценка:
Здравствуйте, FDSC, Вы писали:

EB>>Забыл добавить — и, собственно, unchecked exception-ы в плане "вольного выхода из любой точки выражения" значительно более "опасны" — они могут возникнуть в любом месте, а отнюдь не только в value*-методах.


FDS>Это не значит, что они используются постоянно. Я вот что-то не припомню, что бы у меня в программе были ошибки из-за неверных обработок исключительных ситуаций

...хотя unchecked exceptions наверняка используются.

Вот и я не помню ни одной ошибки (ни у себя, ни у кого-либо другого) из-за того, что в блоке выполнялся нелокальный возврат.
--
Бесчастнов Евгений
Re[14]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 11:45
Оценка:
Здравствуйте, Turtle.BAZON.Group, Вы писали:

TBG>Здравствуйте, FDSC, Вы писали:


FDS>>Можете дать какую-нидуь ссылку на Лисп (компилятор и, хотя бы, стандарт, а лучше книгу на русском), а то у меня от поиска в интернете крышу сносит


TBG>Интерпертатор и среда Emacs с настроенным SLIME (Superior Lisp Interaction Mode for Emacs)


Ссылка не работает.
Re[26]: Насколько важен синтаксис языка?
От: Beam Россия  
Дата: 06.09.06 11:45
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Не знаю, как для Явы, а для C# — это нормально.


Позвольте в Вами не согласиться.

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

interface forEachElement {
    void doElement(Object element);
}

// копирование коллекции
ArrayList newList = new ArrayList();
myList.forEach( new forEachElement() {
    void doElement(Object element) {
        newList.add(element);
    }
}


Почему не исполюзуются такие конструкции? Ведь с такой техникой можно и ничего не добавлять в язык?
А потому, что это НЕ УДОБНО, не удобен синтаксис!

Зато пошли по пути расширения языка. Надоело программистам все время писать код обхода коллекции — в язык добавили foreach. Отлично! Скоро добавим ключевые слова select, collect, detect и т.п.

В C# все таки отступили от правил — изменили синтаксис.
В 1.0 там появились делегаты, это уже объект, ссылка на метод. Прогресс, но все равно не удобно.
Затем в 2.0 — появились анонимные методы. Удобно, но все еще слишком длинно.
И вот, наконец в 3.0 — лямбда. Вроде должно быть все ок.

Вот так, долго-долго шли к тому, что появилось очень давно. И, кстати, еще не дошли.

FDS>Ну, не только же Ява на свете есть.


Код такой же длины будет и на C#. Получше ситуация будет в С и Pascal за счет поддержки указателей.
Ведь мы говорим про mainstream, не так ли?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Best regards, Буравчик
Re[11]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 11:49
Оценка: +3 :)
Здравствуйте, night beast, Вы писали:

NB>Здравствуйте, RustM, Вы писали:


K>>>>Кстати говоря да, я даже сегодня прочитал все сообщения Win2K'ея. Если фильтровать все его поливания дерьмом остальных, то он очень толковые вещи говорит, местами.


NB>>>если он тот, кто я думаю, то кого попало (без причины) он дерьмом не обливает.


RM>>И что, это даёт какое то моральное право обливать дерьмом?


NB>а что, у него кто-то это самое право отбирал?


А у него его никогда и небыло
Re[13]: Насколько важен синтаксис языка?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.09.06 11:50
Оценка:
Здравствуйте, FDSC, Вы писали:

ГВ>>Естественно, у самого мэйнстрима, как у неодушевлённого явления, амбиций никаких нет. Я скорее говорю о тех требованиях, которые предъявляются к окружающим ради "следования майнстриму".


FDS>И что это за требования?


Здесь
Автор: Геннадий Васильев
Дата: 05.09.06
кое-что накидано.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[15]: Насколько важен синтаксис языка?
От: Mirrorer  
Дата: 06.09.06 11:50
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>К сожалению скачать не удалось. Может быть в другой раз попробую, что-то со связью...

FDS>А что это за расширение такое — *.ps?
PostScript.
Где-то пробегала ссылка на этот же документ в pdf, но что-то не могу найти

Еще одно введение в Scheme здесь
Но на английском.
... << RSDN@Home 1.1.4 Moby — Slipping Away (MHC Radio Edit)>>
Re[27]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 11:58
Оценка:
Здравствуйте, Beam, Вы писали:

B>Здравствуйте, FDSC, Вы писали:


FDS>>Не знаю, как для Явы, а для C# — это нормально.


B>Позвольте в Вами не согласиться.


B>Если это нормально, то почему обход коллекции в большинстве случаев производится вручную, т.е. с помощью цикла.

B>Ведь можно создать метод forEach и, подставляя нужный кусок кода, бегать по коллекции. Однако, чего-то не видно всего этого в коде.

B>
B>interface forEachElement {
B>    void doElement(Object element);
B>}

B>// копирование коллекции
B>ArrayList newList = new ArrayList();
B>myList.forEach( new forEachElement() {
B>    void doElement(Object element) {
B>        newList.add(element);
B>    }
B>}
B>


B>Почему не исполюзуются такие конструкции? Ведь с такой техникой можно и ничего не добавлять в язык?

B>А потому, что это НЕ УДОБНО, не удобен синтаксис!

B>Зато пошли по пути расширения языка. Надоело программистам все время писать код обхода коллекции — в язык добавили foreach. Отлично! Скоро добавим ключевые слова select, collect, detect и т.п.


B>В C# все таки отступили от правил — изменили синтаксис.

B>В 1.0 там появились делегаты, это уже объект, ссылка на метод. Прогресс, но все равно не удобно.
B>Затем в 2.0 — появились анонимные методы. Удобно, но все еще слишком длинно.
B>И вот, наконец в 3.0 — лямбда. Вроде должно быть все ок.

B>Вот так, долго-долго шли к тому, что появилось очень давно. И, кстати, еще не дошли.


FDS>>Ну, не только же Ява на свете есть.


B>Код такой же длины будет и на C#. Получше ситуация будет в С и Pascal за счет поддержки указателей.

B>Ведь мы говорим про mainstream, не так ли?

При программировании на Delphi я иногда делал foreach, когда обход был не совсем тривиален, так что ваш аргумент не уместен, по крайней мере, для меня лично. Что касается некоторых тривиальных операций, то они частенько и без foreach занимают несколько секунд. Там, где случаи посложней иногда такой метод и не напишешь
Re[18]: Насколько важен синтаксис языка?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 06.09.06 11:59
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Здравствуйте, Eugene Beschastnov, Вы писали:


EB>>Здравствуйте, VladD2, Вы писали:



VD>>>Еще раз. Это не лябда! Это эдакий вариант континюэшона, а еще точнее замена дальнего goto. За такое в приличных программистских конторах по пальцем железной линейкой были во времена С. Код может получиться столь не предсказуемым, что его отладка и изучение может стать пыткой.

EB>>Ну не получается . Ни у меня, ни у кого другого, использующего Smalltalk (замечу — именно использующего). Что мы не так делаем?

FDS>Вы уверены?

Да. Если бы это вызывало хоть какую-нибудь проблему (с проектированием, с пониманием, с дебагом или с чем-то другим) — я бы скорее всего об этом услышал. Потому что блоки — это базовая фича Smalltalk и присутствует во всех диалектах.

FDS>Но согласитесь, VladD2 привёл классный пример,

Не соглашусь. Ничего особенно классного в этом примере я не вижу (кстати, по хорошему бы надо бы написать "return" вместо "goto"). Возможно, в Nemerle это и создаёт какие-то проблемы (сам я Nemerle не знаю, поэтому судить не могу), но в Smalltalk — нет.

FDS>кто даст гарантию, что какой-нибудь "умник" так не сделает

Как "так"?
--
Бесчастнов Евгений
Re[18]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 11:59
Оценка: +1
Здравствуйте, Eugene Beschastnov, Вы писали:

EB>Здравствуйте, FDSC, Вы писали:


EB>>>Забыл добавить — и, собственно, unchecked exception-ы в плане "вольного выхода из любой точки выражения" значительно более "опасны" — они могут возникнуть в любом месте, а отнюдь не только в value*-методах.


FDS>>Это не значит, что они используются постоянно. Я вот что-то не припомню, что бы у меня в программе были ошибки из-за неверных обработок исключительных ситуаций

EB>...хотя unchecked exceptions наверняка используются.

EB>Вот и я не помню ни одной ошибки (ни у себя, ни у кого-либо другого) из-за того, что в блоке выполнялся нелокальный возврат.


Видимо, каждый вибирает тот язык, который ему более подходит
Re[16]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 12:03
Оценка:
Здравствуйте, Mirrorer, Вы писали:

M>Здравствуйте, FDSC, Вы писали:


FDS>>К сожалению скачать не удалось. Может быть в другой раз попробую, что-то со связью...

FDS>>А что это за расширение такое — *.ps?
M>PostScript.
M>Где-то пробегала ссылка на этот же документ в pdf, но что-то не могу найти

M>Еще одно введение в Scheme здесь

M>Но на английском.

Ещё одно но, там больше полусотни файлов...
Re[19]: Насколько важен синтаксис языка?
От: Eugene Beschastnov Россия http://eugenius-nsk.livejournal.com/
Дата: 06.09.06 12:05
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Видимо, каждый вибирает тот язык, который ему более подходит


Не могу не согласиться
--
Бесчастнов Евгений
Re[19]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 12:05
Оценка:
Здравствуйте, Eugene Beschastnov, Вы писали:

EB>Здравствуйте, FDSC, Вы писали:


FDS>>Здравствуйте, Eugene Beschastnov, Вы писали:


EB>>>Здравствуйте, VladD2, Вы писали:



VD>>>>Еще раз. Это не лябда! Это эдакий вариант континюэшона, а еще точнее замена дальнего goto. За такое в приличных программистских конторах по пальцем железной линейкой были во времена С. Код может получиться столь не предсказуемым, что его отладка и изучение может стать пыткой.

EB>>>Ну не получается . Ни у меня, ни у кого другого, использующего Smalltalk (замечу — именно использующего). Что мы не так делаем?

FDS>>Вы уверены?

EB>Да. Если бы это вызывало хоть какую-нибудь проблему (с проектированием, с пониманием, с дебагом или с чем-то другим) — я бы скорее всего об этом услышал. Потому что блоки — это базовая фича Smalltalk и присутствует во всех диалектах.

FDS>>Но согласитесь, VladD2 привёл классный пример,

EB>Не соглашусь. Ничего особенно классного в этом примере я не вижу (кстати, по хорошему бы надо бы написать "return" вместо "goto"). Возможно, в Nemerle это и создаёт какие-то проблемы (сам я Nemerle не знаю, поэтому судить не могу), но в Smalltalk — нет.

Насколько я понимаю, ни в одном современном языке программирования так написать нельзя. Что касается return, то тут по семантике именно goto, потому что это не SmallTalk.

FDS>>кто даст гарантию, что какой-нибудь "умник" так не сделает

EB>Как "так"?

Как сделал VladD2
Re: Дополнение
От: Дарней Россия  
Дата: 06.09.06 12:11
Оценка: -1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Маленькая мышка сожрать большой амбар зерна, то есть "сделает" очень много, но банальным грызуном с примитивной моделью существования она от этого быть не перестанет. Тогда как учёный может жизнь положить на безуспешные исследования, то есть "сделать" в смысле ощутимого результата очень мало, но, возможно, проложить этим дорогу другим.


Многие "ученые" по модели существования от этой мышки ничем не отличаются. Только сжирают они не зерно, а гранты.
И пользы от них — столько же, сколько от пресловутой мышки. А вот вреда — намного больше
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[15]: Насколько важен синтаксис языка?
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 06.09.06 12:20
Оценка: +2
FDSC,

Это всё, а также многое другое _неоднократно_ летало в соседнем форуме под названием "Декларативное программирование".
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[28]: Насколько важен синтаксис языка?
От: Beam Россия  
Дата: 06.09.06 12:26
Оценка: +3
Здравствуйте, FDSC, Вы писали:

FDS>При программировании на Delphi я иногда делал foreach, когда обход был не совсем тривиален, так что ваш аргумент не уместен, по крайней мере, для меня лично.


Про какой конкретно аргумент Вы говорите?

Скажу так:
1. Closure — это ОЧЕНЬ УДОБНО. Они улучшают читаемость кода и его повторное использование.
2. На современных mainstream языках можно сделать в каком-либо виде аналог closures.
3. В большинстве таких аналогов появляется значительный синтаксический оверхэд, а это приводит:
— к отказу от использования closures в этих языках, либо
— использованию closures и одновременному ухудшению читабельности кода (т.е. потери одного из преимуществ)

Указанных проблем нет в Lisp, Smalltalk, Ruby, и др.
Возможно скоро не будет этих проблем в C#

FDS>Что касается некоторых тривиальных операций, то они частенько и без foreach занимают несколько секунд. Там, где случаи посложней иногда такой метод и не напишешь


При любом дублировании кода (даже набор которого длится несколько секунд) вероятность ошибки возрастает.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Best regards, Буравчик
Re[11]: Насколько важен синтаксис языка?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.09.06 12:59
Оценка: +2 -1
Здравствуйте, Дарней, Вы писали:

ГВ>>Этот постинг улыбнул меня своей пионерской наивностью. Я даже не нашёлся, что ответить.

Д>Ты лучше не о чужой наивности рассуждай, а хоть что-нибудь по делу скажи. Для разнообразия.

По какому ещё делу? Нет никакой связи между мощностью Lisp и волнами стартапов. Нет и быть не может. Мощность Lisp — это характеристика инструмента. Чтобы возникла "волна стартапов" нужно много чего, кроме самого инструмента. Если ты думаешь, что раз нет волны, то и преимущества Lisp "высосаны из пальца" — разубеждать не буду.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[12]: Насколько важен синтаксис языка?
От: FR  
Дата: 06.09.06 13:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Хм. А как что же их тогда объявлять? Или ты предлагаешь вообще их не объявлять? Последнее приводит к ошибкам. Это натуральные грабли. Одна опечатка и ищи ошибку часами.


Не заметил, опять?
Re[16]: Насколько важен синтаксис языка?
От: Andrei Gorlov  
Дата: 06.09.06 13:27
Оценка: 6 (3)
Здравствуйте, Mirrorer, Вы писали:


M>Где-то пробегала ссылка на этот же документ в pdf, но что-то не могу найти


Достаточно поменять расширение в ссылке:

http://newstar.rinet.ru/~goga/sicp/sicp.<b>pdf</b>
Re[29]: Насколько важен синтаксис языка?
От: FDSC Россия consp11.github.io блог
Дата: 06.09.06 14:09
Оценка:
Здравствуйте, Beam, Вы писали:

B>Здравствуйте, FDSC, Вы писали:


FDS>>При программировании на Delphi я иногда делал foreach, когда обход был не совсем тривиален, так что ваш аргумент не уместен, по крайней мере, для меня лично.


B>Про какой конкретно аргумент Вы говорите?


B>Скажу так:

B>1. Closure — это ОЧЕНЬ УДОБНО. Они улучшают читаемость кода и его повторное использование.
B>2. На современных mainstream языках можно сделать в каком-либо виде аналог closures.
B>3. В большинстве таких аналогов появляется значительный синтаксический оверхэд, а это приводит:
B>- к отказу от использования closures в этих языках, либо
B>- использованию closures и одновременному ухудшению читабельности кода (т.е. потери одного из преимуществ)

Про третий

B>Указанных проблем нет в Lisp, Smalltalk, Ruby, и др.

B>Возможно скоро не будет этих проблем в C#

Возможно я не понял, что именно удобно

FDS>>Что касается некоторых тривиальных операций, то они частенько и без foreach занимают несколько секунд. Там, где случаи посложней иногда такой метод и не напишешь


B>При любом дублировании кода (даже набор которого длится несколько секунд) вероятность ошибки возрастает.


Если речь идёт про тривиальное for (int i = 0; i < object.Length; i++) — то нет. Это, собственно, не дублирование кода. Не считаете же вы дублированием кода вызов одной и той же функции или применение одного и того же оператора
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.