這是函數(shù)式編程內(nèi)的三個(gè)重要概念,本人在接觸swift函數(shù)學(xué)習(xí)時(shí)接觸,徹底搞蒙了,后來又看了多篇文章以后才搞明白,在此只是表述下自己的理解。
個(gè)人認(rèn)為雷純鋒的介紹較容易理解,但倆者可結(jié)合看,形成自己的見解
首先明確三種類型都是一種值數(shù)據(jù)類型
Functor
接收一個(gè)上下文中的值,應(yīng)用一函數(shù),得到一個(gè)上下文中的值
注:接收的是上下文中的值,值存在,相當(dāng)于接受一個(gè)普通值,返回一個(gè)普通值;值不存在,則返回空,因值的不確定性,故稱為上下文中的值。
Applicative
接收一個(gè)上下文中的值,應(yīng)用一上下文的函數(shù),得到一上下文中的值
?。号cFunctor區(qū)別在于函數(shù)也是不確定的,可有可無,故也是上下文的函數(shù)
Monad
接收一個(gè)上下文中的值,應(yīng)用一個(gè)接收普通值但是返回上下文中的值的函數(shù),得到一個(gè)上下文中的值。
注:此與Functor極為相似,區(qū)別在于應(yīng)用的函數(shù),F(xiàn)unctor應(yīng)用的函數(shù)是:接收一個(gè)普通值返回一個(gè)普通值,Monad:應(yīng)用的函數(shù)是:接受一個(gè)普通值返回一個(gè)上下文中的值。
看那么多都繞暈了,一定要學(xué)好語(yǔ)文,區(qū)分好主謂賓,去掉定狀補(bǔ),概念就明了了~~
看!灰機(jī)~灰機(jī)灰過去了~灰機(jī)又灰回來了~~