Обсуждение:Чистота языка программирования
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Общие замечания[править код]
Первоначальный текст этой статьи основан на материалах моей книги по функциональному программированию «Функциональное программирование на языке 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)
- Господа! Я ничуть не протестую против содержимого статьи. Просто если я захожу на статью с названием "Чистота языка программирования", то после прочтения статьи я так и не получаю ответа на вопрос: "что какой язык считается "чистым"?", потому что в статье речь идёт о чистоте функций. Я предлагаю всё-таки дать статье более адекватное название, а вместо оригинальной либо поставить стаб с сылкой на статью, либо поправить ссылки из ссылающихся статей. George Shuklin 08:13, 30 марта 2006 (UTC)
- Может быть. Я не успел познакомиться с предметом. --yms 14:41, 28 марта 2006 (UTC)
- Вы так считаете? А разве я не могу использовать кусок текста из своей книги в качестве затравки для текста статьи (которого до этого вообще не было, а на саму статью ссылается куча других статей)? Dark Magus 11:44, 28 марта 2006 (UTC)
- Видимо, Вам не сюда, не в Википедию. Здесь это называется орисс. --yms 11:06, 28 марта 2006 (UTC)
- Я Вас не понимаю... Dark Magus 09:34, 28 марта 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)