LINUX.ORG.RU

Выражение и инструкции

 глупые споры, ,


1

1

Навеяно обсуждением новой версии компилятора D в новостях.

Начался спор, как я понял, с вопроса о нужности явного ретурна, но мне кажется, что это лишь следствие более общего(и интересного) вопроса: «разделять ли при проектировании ЯП понятия выражение и инструкция или же считать все выражением?».



Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от anonymous

Чем вам не по душе тип Unit или его аналог?

Тем, что значения этого типа не принимаются и не возвращаются, это искусственный костыль.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Чем вам не по душе тип Unit или его аналог?

Тем, что значения этого типа не принимаются и не возвращаются, это искусственный костыль.

Тебе, небось, еще не по душе ноль в арифметике и пустое множество в математике?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ноль - это число, а не отсутствие числа. Когда пишут void a(void) - возвращаемое значение отсутствует, а не равно некоему нулю.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

В сишечке есть инструкции, поэтому там можно и так. А мы тут вроде о языках, где все выражение. Там Unit является полноправным типом.

anonymous
()
Ответ на: комментарий от unC0Rr

Тебе, небось, еще не по душе ноль в арифметике и пустое множество в математике?

Ноль - это число, а не отсутствие числа.

Насчет пустого множества возражений нет? Я так и думал.

Когда пишут void a(void) - возвращаемое значение отсутствует, а не равно некоему нулю.

void - это тип, у которого нет значений (ровно 0 штук).

tailgunner ★★★★★
()
Ответ на: комментарий от unC0Rr

Так много звёзд, а такой тупой, а.

anonymous
()
Ответ на: комментарий от korvin_

А зачем? Ведь это бессмысленно? Ради чего заводить полноценный отдельный тип? Ради экономии нескольких символов?

anonymous
()
Ответ на: комментарий от anonymous

зачем плодить сущности без необходимости?

Кстати да, зачем? Выражения в языке должны быть, функции тоже. Зачем нужны доказанно ненужные сущности вроде операторов (ты ведь операторы называешь «инструкциями», да?) и процедур?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

стейтменты нужны потому, что они являются элементарными командами абстрактного исполнителя. Выражения нужны потому, что они позволяют вычислять. Зачем их смешивать, вводя совершенно ненужную сущность в виде unit/void, от которой нет никакого толку?

anonymous
()
Ответ на: комментарий от anonymous

стейтменты нужны потому, что они являются элементарными командами абстрактного исполнителя

Наукообразная бессмыслица.

Зачем их смешивать, вводя совершенно ненужную сущность в виде unit/void, от которой нет никакого толку?

Спроси об этом еще много раз и объяви себя победителем в этом споре.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Наукообразная бессмыслица.

Разве нельзя то же самое написать о ваших словах?

Спроси об этом еще много раз и объяви себя победителем в этом споре.

Победа мне не нужна. А вам достаточно ответить один раз, зачем нужен unit/void, помимо случая с возвратом «значения» из функции, которая на самом деле никакого значения не возвращает...

anonymous
()
Ответ на: комментарий от anonymous

Наукообразная бессмыслица.

Разве нельзя то же самое написать о ваших словах?

Я не оперирую туманными понятиями вроде «элементарных команд абстрактного вычислителя».

А вам достаточно ответить один раз, зачем нужен unit/void, помимо случая с возвратом «значения» из функции, которая на самом деле никакого значения не возвращает...

Чтобы не плодить лишних сущностей вроде «функций, которые ничего не возвращают».

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Типы есть, а вот зачем пустой тип?

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

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от anonymous

А пустой тип разве выразим в общем случае?

Он выразим. Как ноль и пустое множество.

в сишечке

«Сишечка»? Так малолетненькие дебильчики называют Си?

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

Ну инструкции - это более тяжелая концепция, влияющая на весь язык. В то время как Unit - просто «еще один» тип. Да, в С и С++ void не самый удачный, но ведь там есть инструкции.

forCe
() автор топика
Ответ на: комментарий от anonymous

Чтобы не было void, надо еще разделение на процедуры и функции (как в Фортране, например).

anonymous
()
Ответ на: комментарий от anonymous

это вполне естественное разделение на действия и вычисления.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.