Всем привет.
Почитываю на досуге как дополнение к "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
Ответ на:
комментарий
от cathode

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

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

Ответ на:
комментарий
от Bohtvaroh
Ответ на:
комментарий
от dilmah

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

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Замыкание и haskell. (2009)
- Форум Замыкания в Haskell и Scheme (2013)
- Форум Haskell дизайн языка (2009)
- Форум Книги по языку Haskell (2012)
- Форум справочник (2009)
- Форум когда добавили замыкания в язык X? (2018)
- Форум Замыкание как аргумент другого замыкания (2018)
- Новости Языку Haskell исполнился 21 год (2011)
- Форум C++, замыкания (2019)
- Форум питон замыкания (2015)