모나드는 무언가를 집어넣어 무언가를 할 수 있는 것입니다.
일관성 없는 데이터를 처리해야 했던 때를 생각해 보십시오. 어딘가에 선택적/null 가능 값이 있을 때마다 이 작업을 수행해야 한다는 사실을 깨닫기 전에 오래 생각할 필요가 없습니다. 할 수도 있고 아닐 수도 있습니다
truthy
, Haskell에서 null
.JavaScript에서
Maybe something
값을 포함할 수 있는 값(사물)의 배열이 있다고 가정해 보겠습니다.const myJsArray =
[value1, value2, value3]
이제 이 배열을 반복(작업 수행)하고 싶습니다.
const double = x => x * 2
const myNewArray = myJsArray.map(double)
일련의
undefined
값을 포함하는 배열로 끝나기를 원하지 않을 것입니다. 이것이 사용자에게 혼란을 줄 수 있는 많은 경로의 첫 번째 단계라는 것을 이미 알고 있습니다.당신은 당신의 물건을 가지고 있고, 당신은 그 물건으로 뭔가를하고 싶어
그래서 무엇이 필요합니까? 당신이 그것들을 집어넣는 것, 그래서 당신은 그것들로 무엇인가를 할 수 있습니다. 모나드가 필요합니다!
앞서 Haskell의 Maybe 유형에 대해 언급했습니다. 이 유형은
NaN
또는 Just something
의 두 변형 중 하나를 저장할 수 있습니다. 즉, 무언가에 값이 포함되어 있는지 여부를 확신할 수 없더라도 어쨌든 일관된 작업을 수행할 수 있습니다. 수행하려는 작업은 두 시나리오에서 수행할 작업을 처리하는 데 필요합니다. 응용 프로그램의 다른 곳에서 예기치 않은 정크 데이터로 끝날 수 없습니다. 또는 다른 말로 표현하면 원하는 것을 할 수 있다는 것을 알고 있습니다. 왜냐하면 그것이 사물에 있었기 때문입니다!내가 왜 이것을 썼습니까?
저는 수년 동안 모나드에 대한 다양한 설명을 많이 들었습니다. 사람들은 설명할 때 멋진 단어를 사용하는 것을 좋아하는 경향이 있으며 누군가 모나드에 대해 언급하자마자 많은 사람들이 함수형 프로그래밍을 피하는 것을 보았습니다. 사실, Elm 커뮤니티는 모나드라는 단어를 말하는 것조차 좋아하지 않습니다(대신에
Nothing
를 선택했는데, 이는 더 간단한 용어라는 데 동의합니다).Google"What is a monad?"과 동일한 내용이 여러 방식으로 설명된 것을 볼 수 있지만 이 게시물을 읽기도 전에 읽은 설명만큼 간단한 설명은 없을 것입니다. 결과에 이 게시물이 표시되더라도...이제 이해recursion에서 한 단계 멀어진 것입니다.
Reference
이 문제에 관하여(모나드는 무언가를 집어넣어 무언가를 할 수 있는 것입니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nimmo/a-monad-is-a-thing-you-put-things-in-so-you-can-do-things-with-them-2f35텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)