用haskell实现select的timeout(待解决)
2007-04-05 23:29
232 查看
在ocaml.cn上看到有人问如何用haskell实现select的timeout,觉得这个比较实际的问题有点意思,记下来留待以后慢慢想。
原文在: http://ocaml.cn/node/296 输入参数是一些Handle,都是可读的,但不确定什么时候能读到数据(比如说它们都是pipe的一端在等待另一端的输入);函数的主要功能是—— 在这些Handle上等数据,对最先发现数据的Handle作hGetChar,并取消对其他Handle的等待,返回值为所取得的char;除此之外, 还有一个时间参数作为timeout,如果这段时间内任一handle上都没有输入的话,就取消全部action。如果用haskell的类型来表示的 话,这个函数的类型大概应该是float -> [Handle] -> Maybe char
这是个很常见的需求,实际上这就是传统意义上的select函数,但我不知道应该怎么写。>>=和return这些primitive都有,问题就是怎么将它们组合来实现这个功能。快速指南里的大都是什么输入一个char输出两遍之类的例子,没有发现类似的功能。
原文在: http://ocaml.cn/node/296 输入参数是一些Handle,都是可读的,但不确定什么时候能读到数据(比如说它们都是pipe的一端在等待另一端的输入);函数的主要功能是—— 在这些Handle上等数据,对最先发现数据的Handle作hGetChar,并取消对其他Handle的等待,返回值为所取得的char;除此之外, 还有一个时间参数作为timeout,如果这段时间内任一handle上都没有输入的话,就取消全部action。如果用haskell的类型来表示的 话,这个函数的类型大概应该是float -> [Handle] -> Maybe char
这是个很常见的需求,实际上这就是传统意义上的select函数,但我不知道应该怎么写。>>=和return这些primitive都有,问题就是怎么将它们组合来实现这个功能。快速指南里的大都是什么输入一个char输出两遍之类的例子,没有发现类似的功能。
相关文章推荐
- 用haskell实现select的timeout(待解决)
- 一个JS图片放大镜,实现动态记录的图片放大,避免内存泄露,解决IE6下无法遮盖select控件问题
- 解决Firefox/Opera 不支持onselectstart事件实现不允许用户select
- 一个JS图片放大镜,实现动态记录的图片放大,避免内存泄露,解决IE6下无法遮盖select控件问题
- NSMutableURLRequest实现Post请求及其timeoutInterval不生效问题解决
- 解决Firefox/Opera 不支持onselectstart事件实现不允许用户select
- jquery实现的拖拽效果,解决拖动速度过快时的会卡现象,select的遮挡问题和透明效果
- URLConnection实现爬虫(解决重定向、设置cookie才能抓取页面等问题)
- select实现多选、全选、全不选
- 朴素、Select、Poll和Epoll网络编程模型实现和分析——朴素模型
- 尝试新思路——Select模型的另一种实现
- PHP中实现中文字串截取无乱码的解决方法
- access中Top与Order by 的问题——如何解决 SELECT TOP 1语句竟然返回多条记录的问题?
- MySQL中SELECT+UPDATE处理并发更新问题解决方案分享
- 解决php表单重复提交实现方法
- 解决dracut-initqueue : Warning: dracut-initqueue timeout - starting timeout scripts 的办法
- 关于在DataTable中执行DataTable.Select("条件")返回DataTable的解决方法
- php 解决表单重复提交实现方法介绍
- J2EE工程实现中常见安全问题解决对策
- 用HttpSession实现最先显示<select>中被选中的项