LINUX.ORG.RU

Душкин Р.В. «Справочник по языку Haskell». Вопрос по замыканиям.


0

0

Всем привет.

Почитываю на досуге как дополнение к "Real World Haskell" книгу Душкин Р.В. "Справочник по языку Haskell". Имею вопрос по замыканиям.

Несколько цитат:

"Замыкания или локальные определения - один из механизмов ФП, который предназначен для оптимизации определения функций",
"Из-за детерминизма, свойственного ФП, значение локальных определений выч-ся один раз, и оно не может быть изменено в рамках текущего выч. процесса.
Это свойство и используется для оптимизации, посколько локальным определением можно обозвать нечто в теле функции, что выч-ся несколько раз.
Так как в любом случае при вычислениях будут получены одинаковые рез-ты, локальное определение позволяет выполнить вычисления единожды".

В качестве подтверждения приводится пример стандартной ф-ии lines:

lines "" = []
lines s  = let (l, s') = break ('\n' ==) s
           in l : case s' of
                    []      -> []
                    (_:s'') -> lines s''

Мне непонятно, что именно здесь может быть вычислено единожды и что понимается под "вычислительным процессом", ведь каждый раз аргументы у lines меняются.

Помогите привести сознание в порядок. Спасибо заранее. :)
★★★★

Ответ на: комментарий от Die-Hard

ОТформатировно нормально, вполне по-человечески, а вто замыканием тут действительно не пахнет.

Вообще книги Душкина - большое Г. - очень много копи-паста из отурытых источников (например из yaht), также сомневаюсь в возможности нормально изучить язык по ним.

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

большой плюсадын. Книги ничем не лучше существующих онлайн-источников

Joe_Bishop
()

> Почитываю на досуге ... книгу Душкин Р.В. "Справочник по языку Haskell"

Брось каку.

> Мне непонятно

Товарищ тихо бредит.

По сути: естественно, lines будет вычислятся каждый раз заново, как и все локальные переменные в ней.

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

Ясно, понятно, значит замыканием тут и не пахнет... Зачем же тогда столько слов про оптимизацию и т.д. с таким примером? Фе.

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

>> Зачем же тогда столько слов про оптимизацию и т.д. с таким примером?

Ты еще не читал его первую книгу...

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

> А что строчка длиной в 40 символов требует моника размером в футбольные ворота?

на 9-дюймовом S200N читать этот топик невозможно. Остальные топики нет проблем.

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

Да ладно, звиняйте, на будущее буду иметь ввиду. Всем спасибо.

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