免费注册 查看新帖 |

Chinaunix

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

[ML][小贴士]:ML 中的 =, -> 和 => [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-09 11:08 |只看该作者 |倒序浏览
如果你学 ML 的方式跟我一样浮躁,很可能被这几个符号搞糊涂:


  1. fun f x = x+1;

  2. fn x => x+1;
复制代码


=  用在 fun 定义的普通函数中,而 => 用在 fn 定义的匿名函数中。

那 -> 又是什么呢?它表示两种类型间的一个映射。在 ML 的交互环境中,你常常能看到它。


  1. - fn x=> x+1;
  2. > val it = fn : int -> int
复制代码


有时候需要自己输入 ->,比如


  1. datatype 'a seq = Nil | Cons of unit->'a * 'a seq;
复制代码





------------贴士的贴士----------------------------------

贴士在粤语中很常用,是个外来词,即 tips.

----------------------------------------------------------

[ 本帖最后由 win_hate 于 2008-11-9 11:13 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-11-09 11:12 |只看该作者
看一下数学上的类似行为:

集合 A 到 B 的映射记为 A -> B

集合 A 的元素 a 映射为集合 B 的元素 b 记为 a |-> b

论坛徽章:
0
3 [报告]
发表于 2008-11-09 12:15 |只看该作者
晕了,呵呵。

用 haskell 时第一个符号问题是 "/=" 表示不等于,而不是“!=”,呵呵。

论坛徽章:
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-11-09 13:41 |只看该作者
原帖由 drunkedcat 于 2008-11-9 12:15 发表
晕了,呵呵。

慢慢你就习惯了。

学了很多语言的一个副作用就是,许多时候会突然忘了你要用的语言的语法,然后乱写一气。。。

论坛徽章:
0
5 [报告]
发表于 2008-11-09 15:46 |只看该作者
原帖由 drunkedcat 于 2008-11-9 12:15 发表
晕了,呵呵。

用 haskell 时第一个符号问题是 "/=" 表示不等于,而不是“!=”,呵呵。


学过 C 的都觉得这里是在做除法。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2008-11-09 17:48 |只看该作者
看来 FP 语言都这几条语法。
只不过用的符号各不相同,差别挺大的。

ML 里面的 => 在 Erlang 里面用 -> 来表示。
FP 里面的 -> 和 ML 是一样的。

论坛徽章:
0
7 [报告]
发表于 2008-11-09 19:40 |只看该作者
原帖由 MMMIX 于 2008-11-9 13:41 发表

慢慢你就习惯了。

学了很多语言的一个副作用就是,许多时候会突然忘了你要用的语言的语法,然后乱写一气。。。



就是就是。

所以语言还是不要学太多,现学现用,呵呵。

论坛徽章:
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
8 [报告]
发表于 2008-11-09 23:26 |只看该作者
原帖由 drunkedcat 于 2008-11-9 19:40 发表

所以语言还是不要学太多,现学现用,呵呵。

多学几种类型不同的语言还是很有好处的,起码可以开阔眼界。

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

多学几种类型不同的语言还是很有好处的,起码可以开阔眼界。



Eric Raymond 推荐学习 html, c/c++, java, perl, lisp, 英语,呵呵,我觉得应该可以加上 haskell. 思维方式都不一样。

论坛徽章:
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
10 [报告]
发表于 2008-11-10 12:09 |只看该作者
原帖由 drunkedcat 于 2008-11-10 10:56 发表



Eric Raymond 推荐学习 html, c/c++, java, perl, lisp, 英语,呵呵,我觉得应该可以加上 haskell. 思维方式都不一样。

每个人推荐的东西都会受到他/她自己知识背景的限制,因此参考一下就可以了,没必要太认真
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP