免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4803 | 回复: 10
打印 上一主题 下一主题

Real World Haskell 第一章的最后一个程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-25 21:34 |只看该作者 |倒序浏览

  1. main = interact wordCount
  2.     where wordCount input = show (length (lines input)) ++ "\n"
复制代码


看不懂,有点神秘。书中(至少在第一章)没对这个程序作任何解释,

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2008-09-25 21:44 |只看该作者

回复 #1 win_hate 的帖子

这个没嘛神秘的,你把这里面函数的意思逐个查一下就清楚了 如果再能结合在交互环境(例如 ghci)中试验,那效果就更好了。

http://www.haskell.org/ghc/docs/ ... ries/doc-index.html

[ 本帖最后由 MMMIX 于 2008-9-25 22:00 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-09-25 22:05 |只看该作者
原帖由 MMMIX 于 2008-9-25 21:44 发表
这个没嘛神秘的,你把这里面函数的意思逐个查一下就清楚了 如果再能结合在交互环境(例如 ghci)中试验,那效果就更好了。

http://www.haskell.org/ghc/docs/ ... ries/doc-index.html


那我还是先不查了。估计作者只是想在第一章结尾做个 show,后面会讲的。脚踏实地,不冒进。

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
4 [报告]
发表于 2008-09-25 22:14 |只看该作者
原帖由 win_hate 于 2008-9-25 22:05 发表


那我还是先不查了。估计作者只是想在第一章结尾做个 show,后面会讲的。脚踏实地,不冒进。

嗯,就是 show 一下。另外,估计对你来说那里面并没有什么新鲜的语法,就是几个函数。

论坛徽章:
0
5 [报告]
发表于 2008-09-26 08:52 |只看该作者
main = interact wordCount
    where wordCount input = show (length (lines input)) ++ "\n"

因为 length 的返回值类型是 Int , 所以要用 show 转成字符串,然后才可以和后面的  "\n" 进行 ++ 操作。
interact 的参数是一个函数,这个函数的类型是: String -> String ,即输入一个字符串,处理成一个字符串。

论坛徽章:
0
6 [报告]
发表于 2008-09-26 10:50 |只看该作者
明白了,谢谢。

模拟着写了一个 'cat'


  1. main=interact cat
  2.         where cat x = x
复制代码

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2008-09-26 11:06 |只看该作者
原帖由 win_hate 于 2008-9-26 10:50 发表

模拟着写了一个 'cat'


要我就直接写

  1. main = interact id
复制代码


BTW, Programming in Haskell 这本书也不错,建议看看。

论坛徽章:
0
8 [报告]
发表于 2008-09-26 11:29 |只看该作者
收到,谢谢!

论坛徽章:
0
9 [报告]
发表于 2008-09-26 21:49 |只看该作者
学习了

论坛徽章:
0
10 [报告]
发表于 2008-09-27 17:03 |只看该作者
原帖由 MMMIX 于 2008-9-26 11:06 发表

要我就直接写

main = interact id


BTW, Programming in Haskell 这本书也不错,建议看看。


好多书要看呀。
yaht 看得我有点晕。
看完后看这两本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP