Privacy Policy Cookie Policy Terms and Conditions Обсуждение:Чистота языка программирования — Википедия

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

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

Содержание

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

Первоначальный текст этой статьи основан на материалах моей книги по функциональному программированию «Функциональное программирование на языке 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)
 
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu