Haskell — достаточно необычный язык. И несмотря на немалое количество статей по нему, нередко можно столкнуться с мнением, что всё это помогает лишь в синтетических примерах. И действительно: на простых примерах всё выглядит просто, но куда сложнее представить себе хотя бы небольшую программу в таком стиле, а статьи зачастую рассматривают лишь особенности языка. 
Хаскель является чистым и ленивым функциональным языком; это значит, что результат функции зависит только от аргументов, т. е. будучи вызванной с одним аргументом, функция всегда вернёт один и тот же результат. Поэтому здесь нет переменных — есть функции и значения — однако это никак не мешает. Ленивость означает, что значение будет вычислено только тогда, когда оно действительно понадобится, что позволяет работать с бесконечными списками и структурами данных. 
Бесконечные списки. 
Бесконечный список можно определить через корекурсию — операцию, подобную рекурсии, но не свёртывающую структуру данных (уменьшение значения аргумента тоже можно назвать свёртыванием) , а «развёртывающую» результат (Total FP) на основе изначальных аргументов: 
 
ghci> let ones = 1 : ones 
 ghci> take 5 ones 
 [1,1,1,1,1] 
 
 Благодаря ленивости, полученная бесконечная структура данных (в данном случае ones — это список, в голове которого находится 1, а в хвосте — сам ones, т. е. это бесконечный список единиц) не вычисляется без необходимости, и ей можно пользоваться как обычно. Где это может пригодиться на практике? Например, в строгих языках необходимо заранее знать количество элементов списка, что заставляет в месте создания списка знать лишнюю деталь реализации. Либо приходится создавать какой-нибудь генератор, который вызовут уже «наверху» . Здесь же мы можем просто создать бесконечный список, а нужную часть из него возьмут тогда, когда она потребуется. 
 
Еще посмотрите здесь: 
http://forum.vingrad.ru/forum/topic-326400.html 
http://norniel.livejournal.com/6085.html
				
	Дополнительное образование
	
		
		
								
				
							
			
	
		
			что такое корекурсия? прочитал статью в википедии и нечегч не поня
Похожие вопросы
- здравствуйте. Возможно ли разделить википедию на тома с равным количеством статей?
- какие интересные книги можно прочитать чтобы стать умнее...?)
- Сколько надо прочитать книг в определенной направлении чтобы стать хотя бы не экспертом но хотя бы быть успешным в этом?
- Какие книги стоит (необходимо) прочитать?
- Как научиться хорошо запоминать прочитанное в книге или услышанное по телевизору например?
- Вопрос относительно серьезный! Какую книгу посоветуете прочитать?
- Что такое википедия?
- От какого слова появилось слово "Википедия"???
- что такое. фразеологизмы??обьясните по русски,а то в википедии ничо не понятно
- Допустим читаю текст, и вдруг понимаю что думаю не о том что читаю, а о чем то другом. И получается что почитав прочитав
 
			