Haskell 局部函数的类型申明问题
出自 RealWorldHaskell 一练习题: Chapter 4, 97页, 第7题
原题是用 foldr 写 takeWhile。 假如我这样写(初写haskell, 代码不如C写来漂亮,请匆追究)
- takeWhile_fold :: (a -> Bool) -> [a] -> [a]
- takeWhile_fold fun xs = foldr step [] xs
- where
- --step :: a -> [a] -> [a] -- ????
- step x xs | fun x = x:xs
- | otherwise = []
复制代码
若要给 step 加个类型申明, 正如注释的那样,该如何写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
平时不太上论坛,原来认为,众多论坛上 [code] 的作用就是把代码用合适的字体,语法加色的显示出来.
[ 本帖最后由 boilplate 于 2009-11-7 00:50 编辑 ]
不喜欢在程序里加pragma , 以后还是不写类型申明了
呵呵,我这里新宋体也不行 只有monospace显示对的
试一下字体
Courier
复制代码
新宋
复制代码
monospace
复制代码
[ 本帖最后由 retuor 于 2009-11-6 21:08 编辑 ]
是的。
看看这个连接是否合用?
http://www.haskell.org/ghc/docs/ ... _guide/pragmas.html
谢
我看的每个教材上都说“最好把类型申明写上”,我做练习的时候也喜欢这样, 便于熟悉这些陌生的语言。
这是编译器的 pragma 吗? 能否详细解释一下或给个链接
这是因为论坛恶心的设置,代码不是等宽字体造成的。
你用
复制代码把你的代码括起来就好了。
需要使用扩展
在我的vi里看代码是对齐的,没用tab,我把tab键map成和上一行的最近非空白字符对齐,贴上来就不知怎么最后一行indent乱掉了