優秀PureScript book解釋說,爲什麼不Eff爲具有最後返回值
fullName :: forall r. Record (firstName :: String, lastName :: String | r) -> String
fullName person = person.firstName <> " " <> person.lastName
的箭頭,然後比較Eff
單子
import Prelude
import Control.Monad.Eff.Random (random)
import Control.Monad.Eff.Console (logShow)
main :: forall eff. Eff (console :: CONSOLE, random :: RANDOM | eff) Unit
main = do
n <- random
logShow n
我的問題是: 爲什麼不main
的簽名在單元之前包含->
即
main :: forall eff. Eff (console :: CONSOLE, random :: RANDOM | eff) -> Unit
這將使類似-> String
如在fullName
從同一章節(重點煤礦)的摘錄的簽名:
主要是有副作用的計算,它可以運行在支持隨機數生成和控制檯IO, 和任何其它類型的副作用任何 環境,並且其返回類型的值 單位
。
你明白這意味着什麼的那種['Eff'](https://pursuit.purescript.org/packages/purescript-eff/2.0.0/docs /Control.Monad.Eff#t:Eff)是'#! - > * - > *'? –
有點。我重讀了它,它確實告訴我的理解。謝謝 – RAbraham