ML是什么意思?

手机用户72131
2014-04-27 · TA获得超过297个赞
知道答主
回答量:125
采纳率:0%
帮助的人:120万
展开全部
是男女双方最高境界的交流 通俗地说,就是性生活。 英文:make love.ML的相关资源 这里是我找到的一些ML相关的资源: SML New Jersey --> http://www.smlnj.org/ 最著名的SML编译器——Standard ML New Jersey的官方网站。其中还可以找到很多SML相关的内容 Programming in Standard ML --> http://www.cs.cmu.edu/afs/cs/usr/rwh/public/www/introsml/ 我喜欢的一本Carnegie Mellon University使用的ML教科书——Programming in Standard ML。你也可以从我这里下载。 将Emacs作为SML的开发环境 目前有两个常用的SML的Emacs mode。一个是 Stefan Monnier写的,功能强大一些。可以从这里下载。SML/NJ的网站上有它的文档。 一个在线教程 Programming in Standard ML '97: On-line Tutorial --> http://www.dcs.ed.ac.uk/home/stg/NOTES/ SML的Basic Library文档 如果要用ML写能实际干点事情的程序,离了Standard ML Basic Library是不行的。SML/NJ编译器安装时已经包含了Basic Library,你可以直接使用。如果需要查文档(其实是必然需要的:-)),请看这里。 ML编程环境的配置 我在Windows环境下使用Emacs作为ML的集成开发环境。下面关于Emacs和SML在Windows下的配置说明其实同样适合于各种Unix类操作系统)。这里有一副抓图:在左边的frame中编辑好SML源程序后,按下C-c C-b,程序就交付给运行在右边frame中的SML编译器了。你也可以直接在右边的frame中交互式的输入SML程序。 为了配置这个环境我安装了GNU Emacs for Windows(你也可以用XEmacs for Windows)、SML编译器SML/NJ(你也可以用其他编译器,比如Moscow ML,Poly/ML)、Emacs的SML mode。安装和配置步骤如下: 下载和安装GNU Emacs for Windows 下载和安装SML New Jersey编译器 下载和安装Emacs的SML major mode。具体的方法如下: 在你的Emacs安装目录(例如F:\Program Files\emacs-21.3)下建一个子目录叫site-lisp。如果已经有了就不用建了。 在其中建一个子目录叫sml-mode 将你下载的SML major mode压缩包解开,将其中所有.el文件拷贝到site-lisp/sml-mode子目录下 编辑site-lisp中的site-start.el,加入两行: (add-to-list 'load-path "F:/Program Files/emacs-21.3/site-lisp/sml-mode") (load "sml-mode-startup") 在PATH环境变量里包含SML编译器所在的目录。我的是f:\sml\bin。 启动Emacs后,敲 M-x run-sml就可以在Emacs中启动一个SML交互环境。 如果用 M-x sml-mode就将当前buffer的major mode设置为sml-mode,你会发现其中的SML代码被语法高亮显示了。如果没有语法高亮,你可以在Emacs的配置文件(对于Windows版本的GNU Emacs和XEmacs而言是C:\.emacs,对Unix版本的是~/.emacs)中加入一行: ; Syntax highlight (global-font-lock-mode t) 著作节选 John C. Mitchell在他的Concepts in Programming Langugaes一书中使用ML来展示Algol类语言、Lisp类语言、以及并行语言和面向对象语言中的概念。应清华大学出版社的要求,我参与翻译了此书中的部分内容,其中包括介绍ML语言(和其他Algol类语言)的第5章。没有经过校对的翻译结果可以从这里下载。请大家帮我多提意见。谢谢。 从例子看ML编程风格 通常大家学习编程都是从命令式语言开始的。和函数示语言不同,命令式语言以语句作为基本单位。Algol家族的所有语言都是命令式语言,ML也不例外。因此学习ML不像学习Scheme那样需要完全转换一套思路。但是ML继承了函数式语言的很多特征,而且也有自己的一些特点。 我修改了网上找到的一个求解n皇后问题的程序,用来展示ML编程的一些基本手段: 查看源程序 上面程序中使用了option。如果要改用exception可以将其中addqueen函数的定义改成这样。 程序注解和说明 线性数据结构 程序中总要定义数据结构。常用的定长线性结构包括:Pascal的record,C的struct,C++和Java的class。在ML中我们通常用tuple,即用圆括号括起来的,用逗号分隔的若干项元素。 Tuple是个线性结构,可以用整数索引。比如 #1(1, 2.0, "apple") = 1 #2(1, 2.0, "apple") = 2.0 #3(1, 2.0, "apple") = "apple" 和Algol类语言的数组不同的是,tuple中各个元素的类型可以不一样。 C++的boost模板库中提供了一个模板tuple,模仿ML/Scheme的tuple,使C++程序员可以将不同类型的数据组织成一个便于访问的线性结构。 函数的嵌套定义 ML和大多数Algol类语言一样支持函数的嵌套定义(包括Algol 60、Algol 68和Pascal,但是C是例外)。 如果函数A和函数B互相嵌套调用(indirect recursion),则源程序中可以将B的函数体定义在 A的函数体内,或者A的定义在B的函数体内。具体采用那一种,要看外界是调用A还是B。 函数addqueen和其内部函数try就是这样的例子。显然addqueen是要被外部调用的。 用尾部递归(tail recursion)代替循环 如果用Algol类语言(例如 Pascal和C)来写函数addqueen,其中需要一个循环,从某行的第一个位置开始,判断如果在这个位置上放一个皇后是否可以使得其不和前面已经放上的皇后冲突,而且后面还可以继续放满皇后。而ML中这个循环用递归函数tryARow表示。 纯表达式(pure expression)风格,避免副作用(side effect) 大多数Algol类语言对机器的抽象是以内存为中心的,即变量和对象(object)对应内存中的存储区域,赋值语句对应机器的访存操作,所以程序中有大量的赋值语句。ML也支持赋值,但是通常建议采取的风格是类似Lisp和Scheme的纯表达式风格,避免赋值操作。 例如如果用C来描述n皇后问题,通常我们会设计一个数据结构描述棋盘(和ML程序一样),然后定义这个数据结构的一个实例(可能是个全局变量)。算法的主要工作是通过赋值修改这个实例的内容。 而例子中的ML代码中经典的一段是函数place。这是修改棋盘数据结构的代码。但是并没有使用赋值,而是产生了一个新的数据结构实例,其内容和参数略有区别(放上了一个新的皇后)。 纯表达式的使用要求程序员先对程序考虑得非常细致才能动笔(动手?),因此使得程序逻辑更加清晰。(这和literate programming的思想是一致的。)但是目前的硬件机器是以内存为中心设计的,所以纯表达式语言的实现(编译器和解释器)的效率依靠于设计者多费心思。ML就是通过静态作用域(statically scoping)和uniform data representation等特点结合起来达到高效的。
希望采纳
梦伊血夏魂C9
2020-05-13 · TA获得超过137个赞
知道答主
回答量:1489
采纳率:0%
帮助的人:75.5万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天湉敏春
2020-01-17 · TA获得超过3686个赞
知道大有可为答主
回答量:3057
采纳率:26%
帮助的人:388万
展开全部
可能是做爱的意思,但既然进了汽车购买版块了,那就很有可能是奔驰旗下的一款ML级SUV车型!哈哈哈!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式