随笔分类 - SML
摘要:@ Subtyping From the Beginning 需要一种包含可修改fields的records,并且具有type system,支持subtyping的语言。我们学过的多种语言都不符合这种要求,因此需要我们自定义一种语法(假定一种语言语法)。 根据上述语法规则,下面的程序(类似子类应用
阅读全文
摘要:@ Week5 Introduction 第五周内容的简单导引 What is Type Inference 关于type-checking。ML属于静态类型语言(虽然在编写代码时并不要求显式标出变量类型),在编译时会判断变量类型。 所以ML语言其实是一种隐含类型(Implicitly typed)
阅读全文
摘要:@ Introduction to First-Class Functions 函数是一等公民 前几周的课程虽然也在接触函数式编程的一些表达方式,但本周正式进入函数式编程的主题 函数作为一等公民(一等函数),本身就是一个值(fn类型),可以作为其他函数(高等函数)的参数、返回结果、tuple的元素、
阅读全文
摘要:@ Building Compound Types Each of:例如三维空间的x、y、z坐标,一个人的first和last name One of:例如今天的天气(sunny、partly cloudy、rainy ...),打印机的状态(正在打印、等待打印...) SML中的building-
阅读全文
摘要:首先简单介绍使用的SML语言,参考维基百科和百度百科: ML(Meta Language:元语言)是由爱丁堡大学的Robin Milner及他人在二十世纪七十年代晚期开发的一个函数式、指令式的通用的编程语言,它著称于使用了多态的Hindley–Milner类型推论。ML能自动的指定多数表达式的类型,
阅读全文
摘要:首先保证在smlnj官网,下载并安装了SMLNJ,然后再检查Emacs是否安装sml-mode(需要注意的是Emacs的sml-mode只是一种Emacs的编辑模式,并不包含SML的编译器之类的东西) M-x list-packages查看sml-mode,如图sml-mode显示已安装 新建SML
阅读全文