getSpareBuffer :: Handle__ -> IO (BufferMode, CharBuffer)
getSpareBuffer Handle__{haCharBuffer=ref,
haBuffers=spare_ref,
haBufferMode=mode}
= do
case mode of
NoBuffering -> return (mode, error "no buffer!")
_ -> do
bufs <- readIORef spare_ref
buf <- readIORef ref
case bufs of
BufferListCons b rest -> do
writeIORef spare_ref rest
return (mode, emptyBuffer b (bufSize buf) WriteBuffer)
BufferListNil -> do
new_buf <- newCharBuffer (bufSize buf) WriteBuffer
return (mode, new_buf)
아래의 코드는 GHC 소스 코드에서이다. 이 코드의 작성자가 인수 대신 중괄호를 사용하는 이유를 알고 싶습니다. 그리고 변수 haCharBuffer, haBuffers, haBufferMode가 ref, spare_ref 및 mode에서 값을 가져 오는 방법. 이 값은 정의되지 않았습니다. codefile ghc-에서
flushByteWriteBuffer :: Handle__ -> IO()
flushByteWriteBuffer [email protected]__{..} = do
bbuf <- readIORef haByteBuffer
when (not (isEmptyBuffer bbuf)) $ do
bbuf' <- Buffered.flushWriteBuffer haDevice bbuf
writeIORef haByteBuffer bbuf'
다음 codefile는 GHC-7.4.1 \ 라이브러리를 \ Text.hs
설명이 필요 GHC에서 코드의 또 다른 조각을 처리 GHC \ IO \ \ \ 기지 것은 이것이다 7.4.1 \ libraries \ base \ GHC \ IO \ Handle \ Internals.hs 중괄호 안에 점을 사용하는 것은 무엇입니까?
감사
질문을 편집했기 때문에 내부에 점이있는 중괄호에 대한 두 번째 부분에 대답 할 수 있습니까? 감사합니다 – Dragno
자세한 내용은 편집을 참조하십시오. – dflemstr
고맙습니다. – Dragno