Обсуждение:Чистота языка программирования

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Общие замечания[править код]

Первоначальный текст этой статьи основан на материалах моей книги по функциональному программированию «Функциональное программирование на языке Haskell». Настоящим разрешаю использование первоначального текста на условиях GNU FDL. Dark Magus 05:43, 28 марта 2006 (UTC)[ответить]

Подскажите, а это энфциклопедическая статья? Какая тема статьи? О каком явлении она рассказывает? Разве вики - это книга? George Shuklin 08:38, 28 марта 2006 (UTC)[ответить]
Я Вас не понимаю... Dark Magus 09:34, 28 марта 2006 (UTC)[ответить]
Видимо, Вам не сюда, не в Википедию. Здесь это называется орисс. --yms 11:06, 28 марта 2006 (UTC)[ответить]
Вы так считаете? А разве я не могу использовать кусок текста из своей книги в качестве затравки для текста статьи (которого до этого вообще не было, а на саму статью ссылается куча других статей)? Dark Magus 11:44, 28 марта 2006 (UTC)[ответить]
Может быть. Я не успел познакомиться с предметом. --yms 14:41, 28 марта 2006 (UTC)[ответить]
Чистота (в смысле программирования) — это давно устоявшееся понятие, которое во всю используется при описаниия языков программирования, в первую очередь функциональных. Поэтому это никак не ОРИСС, но попытка дать определение (хотя и мой, авторское). Что с того, что я взял это определение из своей книги в качестве начальной версии статьи? Теперь остаётся довести статью до ума, как это сделано с тысячами других статей в Википедии. Разве я не прав? Dark Magus 04:47, 30 марта 2006 (UTC)[ответить]
Какое отношение имеет название статьи «Чистота языка программирования» к содержимому статьи, которое рассказывает про «чистоту функции»? Может стоит её переименовать? Кроме того, я бы предложил выделить монады в отдельную статью, а в этой сделать краткое описание (на предложение) и ссылку на неё. George Shuklin 10:17, 29 марта 2006 (UTC)[ответить]
Ссылки из других статей, ведущие на эту, предполагают что здесь речь идёт именно о чистоте языка программирования. Так что, простое переименование ситуацию не спасёт. Лучше всего перенести информацию в другую статью, а эту дописать. Про монады согласен. Igor Chubin 10:47, 29 марта 2006 (UTC)[ответить]
Ещё раз повторюсь, что я вставил небольшой кусок текста из своей книги в качестве затравки для написания вполне энциклопеичной статьи про чистоту языка программирования (это, в большей мере, подразумевает чистоту функций, т. к. относится практически только к языкам функционального программирования). Разве в Википедии нельзя править статьи, чтобы доводить их до ума? Пожалуйста, я для этого и поместил сюда текст. Про монады также соглашусь — давно пора сделать отдельную статью. Dark Magus 04:47, 30 марта 2006 (UTC)[ответить]
Господа! Я ничуть не протестую против содержимого статьи. Просто если я захожу на статью с названием "Чистота языка программирования", то после прочтения статьи я так и не получаю ответа на вопрос: "что какой язык считается "чистым"?", потому что в статье речь идёт о чистоте функций. Я предлагаю всё-таки дать статье более адекватное название, а вместо оригинальной либо поставить стаб с сылкой на статью, либо поправить ссылки из ссылающихся статей. George Shuklin 08:13, 30 марта 2006 (UTC)[ответить]
Мы работаем над статьёй. Не всё же так быстро делается. Вы бы тоже могли помочь в правке текста. Dark Magus 04:26, 31 марта 2006 (UTC)[ответить]

Побочные эффекты[править код]

Относительно "побочных эффектов". Я считал, что "побочный эффект" - это когда функция модифицирует какие-то значения за пределами своего контекста. Т.е. функция, возвращающая значение глобальной переменной (например, GetLastError()), хотя и не является чистой, но побочных эффектов не вызывает.

Наоборот, абстрактная функция Kill_em_all(), возвращающая в качестве значения всегда 0 - чистая, однако обладает весьма печальными побочными эффектами. В этом смысле любая void func() - это "чистая" функция. --George Shuklin 14:46, 31 марта 2006 (UTC)[ответить]

А функции, осуществляющие ввод/вывод — они в каком смысле обладают подобными эффектами? Dark Magus 07:45, 2 апреля 2006 (UTC)[ответить]
Насколько я понимаю, функция является чистой в том случае, если (1) она детерминирована, (2) она не обладает побочными эффектами. Свойства (1) и (2) являются ортогональными, т.е. можно обладать одним и не обладать вторым и наоборот. В этом смысле, в статье действительно, нужно сделать изменения, поскольку там эти понятия смешиваются. Здесь Именно поэтому, если вызвать такую функцию дважды с одним и тем же набором значений входных аргументов, может случиться так, что в качестве результата вычисляются разные значения. Такие функции называются функциями с побочными эффектами правильнее было бы говорить о недетерминированой функции. Верно? --Igor Chubin 14:18, 2 апреля 2006 (UTC)[ответить]
Да, смешение есть. Я даже сейчас буду соответствующий раздел книги переписывать из-за этого :) Мне давно указали на сей факт. Dark Magus 20:15, 2 апреля 2006 (UTC)[ответить]

Разрежем статью?[править код]

Как вы считаете, что если разрезать статью на несколько: вынести разделы по чистоте функций и по монадам в отдельные, и оставить в этой статье только минимум информации?

Информацию о параллелизме можно сократить и перенести в начало статьи, где перечисляют преимущества чистых языков. Не совсем понятно, что делать с разделом о вводе/выводе и чистоте. --Igor Chubin 14:18, 2 апреля 2006 (UTC)[ответить]

Разре́зать можно. Поступайте на своё усмотрение. Это же — Википедия :). Dark Magus 20:15, 2 апреля 2006 (UTC)[ответить]

Примеры[править код]

Как вы думаете, что если добавить ссылки на языки, которые являются чистыми? Например clean и другие --Igor Chubin 14:18, 2 апреля 2006 (UTC)[ответить]

Пожалуйста. Haskell не забудьте :) Dark Magus 20:15, 2 апреля 2006 (UTC)[ответить]