[ML][小贴士]:ML 中的 =, -> 和 =>
如果你学 ML 的方式跟我一样浮躁,很可能被这几个符号搞糊涂:
- fun f x = x+1;
- fn x => x+1;
复制代码
= 用在 fun 定义的普通函数中,而 => 用在 fn 定义的匿名函数中。
那 -> 又是什么呢?它表示两种类型间的一个映射。在 ML 的交互环境中,你常常能看到它。
- - fn x=> x+1;
- > val it = fn : int -> int
复制代码
有时候需要自己输入 ->,比如
- datatype 'a seq = Nil | Cons of unit->'a * 'a seq;
复制代码
------------贴士的贴士----------------------------------
贴士在粤语中很常用,是个外来词,即 tips.
----------------------------------------------------------
[ 本帖最后由 win_hate 于 2008-11-9 11:13 编辑 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
每个人推荐的东西都会受到他/她自己知识背景的限制,因此参考一下就可以了,没必要太认真
Eric Raymond 推荐学习 html, c/c++, java, perl, lisp, 英语,呵呵,我觉得应该可以加上 haskell. 思维方式都不一样。
多学几种类型不同的语言还是很有好处的,起码可以开阔眼界。
就是就是。
所以语言还是不要学太多,现学现用,呵呵。
看来 FP 语言都这几条语法。
只不过用的符号各不相同,差别挺大的。
ML 里面的 => 在 Erlang 里面用 -> 来表示。
FP 里面的 -> 和 ML 是一样的。
学过 C 的都觉得这里是在做除法。
慢慢你就习惯了。
学了很多语言的一个副作用就是,许多时候会突然忘了你要用的语言的语法,然后乱写一气。。。
晕了,呵呵。
用 haskell 时第一个符号问题是 "/=" 表示不等于,而不是“!=”,呵呵。
看一下数学上的类似行为:
集合 A 到 B 的映射记为 A -> B
集合 A 的元素 a 映射为集合 B 的元素 b 记为 a |-> b