Я смущен, читая определение между ними. Могут ли они действительно пересекаться с точки зрения определения? или я полностью потерян? Благодарю.В чем разница между монадой и закрытием?
ответ
Закрытие, поскольку слово имеет тенденцию использоваться, - это просто функции (или блоки кода, если хотите), что вы можете рассматривать как часть данных и передавать другим функциям и т. д. («закрытый» бит - это то, где вы в конечном итоге называете его, он ведет себя так же, как если бы вы его назвали там, где он был первоначально определен). Монада (примерно) больше похожа на контекст, в котором функции могут быть соединены последовательно последовательно, и контролирует, как данные передаются от одной функции к следующей.
Они совсем другие, хотя монады часто будут использовать замыкания для логики захвата.
Лично я хотел бы попытаться получить твердое определение понятия закрытия (по сути, кусок логики, который также захватывает его среду, то есть локальные переменные и т. Д.), Прежде чем беспокоиться о монадах. Они могут прийти позже :)
Существует множество вопросов о закрытии стека переполнения - лучший способ помочь вам будет зависеть от того, на какой платформе вы работаете. Например, есть:
Лично я только начинаю «монады» обращал внимания (благодаря книге я помогаю на). Однажды я расскажу о них, когда почувствую, что понимаю их достаточно хорошо.
Jon- Мне очень нравится эта часть вашего ответа: «Однажды я расскажу о них, когда почувствую, что понимаю их достаточно хорошо :)« Продолжайте! Удачи! – 2009-06-03 04:17:23
«Закрытие» представляет собой объект, содержащий 1) функцию и 2) значения ее свободных переменных, где она построена.
А «Монада» является классом функций, которые могут быть составлены в определенном смысле, то есть с помощью ассоциированных BIND и возврата товара операторов функции высшего порядка, чтобы произвести другие функции.
Я думаю, что монады немного сложнее, чем замыкания, потому что замыкания - это всего лишь блоки кода, которые что-то запоминают с точки зрения их определений, а монады - это конструкция для «скручивания» обычной работы композиции функций.
- 1. В чем разница между закрытием и модулем?
- 2. В чем разница между закрытием между PHP 5.3 и 5.4?
- 3. В чем разница между закрытием и отсутствием HTML в PHP?
- 4. В чем разница между закрытием свойств и методом в Swift?
- 5. В чем разница между «закрытием» и «удалением» ветки?
- 6. В чем разница между закрытием и традиционными классами?
- 7. В чем разница между закрытием и вложенным замыканием?
- 8. ReactPHP: В чем разница между процессом завершения и закрытием процесса?
- 9. Какая разница между «закрытием» и «блоком»?
- 10. В чем разница между закрытием пути безье с помощью функции closePath и его закрытием вручную?
- 11. В чем разница между Environment.Exit() и Application.Shutdown()?
- 12. Javascript - разница между пространством имен и закрытием?
- 13. разница между функцией и закрытием присвоением
- 14. Какая разница между закрытием и анонимной функции в JS
- 15. В чем разница между «и»?
- 16. В чем разница между `{}` и `[]`?
- 17. В чем разница между == и ===?
- 18. В чем разница между «+» и «\ +»?
- 19. В чем разница между + = и = +?
- 20. В чем разница между/* ... */и/** ... */
- 21. В чем разница между: и +:
- 22. В чем разница между $ {} и # {}
- 23. В чем разница между $ _. и $ _
- 24. В чем разница между = и: =
- 25. В чем разница между && и &?
- 26. В чем разница между $ {} и # {}?
- 27. В чем разница между + и%?
- 28. В чем разница между + = и = +
- 29. В чем разница между # {} $ {} и% {}?
- 30. В чем разница между «» и «»?
Это помогает мне, спасибо! – user63657
Nice - это одно из лучших кратких описаний монад, которые я видел. –
+1 - Очень приятно, действительно. Спасибо. – duffymo