, return
같은 I은 return arg1
하는 타입의 서명을 지정할 수 ghci하에 있도록 m a
이 타입 생성자이다 return :: a -> m a
, 상기 분사 기능 유형 서명 :"return Nothing"의 유형 서명은 무엇입니까? <a href="http://book.realworldhaskell.org/read/monads.html" rel="nofollow">the chapter 14 of Real World Haskell (Monads)</a>에서
*Main> return 1 :: Maybe Integer
Just 1
*Main> return "ok" :: Maybe String
Just "ok"
때문에 Nothing
가있다 유형 Maybe a
의 값은 Nothing
의 유형은 Maybe Integer
또는 Maybe String
, 그래서 다음과 같이 내가 유형을 지정할 수 있다고 생각 :
*Main> return Nothing :: Maybe String
하지만 오류가 발생했습니다.
Couldn't match type `Maybe a0' with `[Char]'
Expected type: String
Actual type: Maybe a0
In the first argument of `return', namely `Nothing'
In the expression: return Nothing :: Maybe String
In an equation for `it': it = return Nothing :: Maybe String
그 유형 서명이 무엇인지 혼란 스럽습니다.
, 당신은 * 반환 할 필요가 없습니다 * 아무것도하는 DO 블록의 끝에서 '아무것도 없다. ' do do nothing은 유효합니다. – mb14
당신은'fail '의 줄을 따라 더 많은 것을 찾고있을 것입니다. err은 인간 ":: 아마 t"이고, 결과는'Nothing'입니다. – AJFarmar