2014-04-07 3 views
1

System.IO의 공식 출처는 어디입니까?System.IO의 공식 소스 코드는 어디에 있습니까?

나는 here으로 보았지만 거기에 없습니다.

source을 클릭하면 여기에 없다고 표시됩니다. this 페이지의 다른 링크가 작동하는 것 같아 혼란 스럽습니다.

편집 :

내가 이걸 발견 :

instance Monad IO where 
    {-# INLINE return #-} 
    {-# INLINE (>>) #-} 
    {-# INLINE (>>=) #-} 
    m >> k = m >>= \ _ -> k 
    return = returnIO 
    (>>=)  = bindIO 
    fail s = failIO s 

bindIO :: IO a -> (a -> IO b) -> IO b 
bindIO (IO m) k = IO $ \ s -> case m s of (# new_s, a #) -> unIO (k a) new_s 

here.

+1

소스 코드 또는 소스 정보? – Sibi

+0

링크를 기반으로 "소스"를 클릭하여 명확하게 코드화합니다. – luqui

+1

코드 인 경우이 코드는 저에게 적합합니다. http://hackage.haskell.org/package/base-4.6.0.1/docs/src/System-IO .html – Sibi

답변

6

System.IO 인터페이스가 어떤 것인지 알고 싶다면 하스켈 보고서를 확인하십시오. 나는 이것이 명목상의 사양이라고 생각한다.

내부 구현을 원할 경우 ... 컴파일러에 하드 연결됩니다. GHC 소스 코드를 읽어야합니다.

편집 :IO은 특별합니다. IO은 마법입니다. 소스를 보면 재미있는 것을 말할 수 없습니다. I/O 작동 방식에 대한 컴파일러의 내부, 저수준 표현을 조작하는 코드 모음 일뿐입니다. 이해하고자하는 것이 무엇이든, 아마 여기에서 깨달음을 얻지 못할 것입니다.

+0

'> ='이 어떻게 구현되는지보고 싶었습니다. 내부 구현에 있습니까? – jhegedus

+0

GHC.Types가 있어야한다고 생각합니다. 그 것처럼 보이지 않습니다. 어쨌든 GHC에서'newtype IO a = IO (RealWorld # - (a, RealWorld #)) '라고 믿고 바인드는'State'처럼 구현됩니다. – luqui

+0

그게 무슨 뜻입니까? – jhegedus

관련 문제