当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


haskell bracket用法及代码示例


Haskell语言IO模块中函数bracket的用法及代码示例。

用法类型:

IO a -> (a -> IO b) -> (a -> IO c) -> IO c

捕获常见的分配,计算,解除分配习惯用语,即使在计算过程中发生错误,也必须在其中进行重新分配步骤。这类似于Java中的try-catch-finally。

该函数计算第一个参数,并将其值传递给第二个和第三个参数。接下来将评估第三个参数,即使此参数的评估导致错误,第二个参数也将在最后一步被评估。

示例1:

源码:

import IO

main = bracket (openFile "/tmp/foo.txt" ReadMode) (print)
               (\x -> return())

输出:
{loc=/tmp/foo.txt,type=readable,binary=False,buffering=block (8192)}
         

示例2:

文件:/tmp/foo.txt
 : 

HELLO
源码:

import IO

main = bracket (openFile "/tmp/foo.txt" ReadMode) (hClose)
               (\hdl ->
		  do x <- hGetChar hdl
		     y <- hGetChar hdl
                     print (x,y)
	       )


输出:
('H','E')
         

注:本文由纯净天空筛选整理自 haskell bracket。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。