从豆瓣上收了一本《ML语言程序设计教程》,这书现在不好找了,因为没有再版。学下ML,主要目的是要读一些国外的经典PLbooks,这些书有些是用ML来illustrate的。
这里大致记录下。
首先是编译器的问题,可以参考wiki上的这一段 https://en.wikipedia.org/wiki/Standard_ML#Implementations--确实看着有点多,所幸在quora上得到Robert Harper(Co-author of The Definition of Standard ML)大大的回复----“SML/NJ for development, MLton for production, typically.”
好了,言归正传。咱暂时选了MLton。跟其他函数式语言类似,MLton的实现也是个REPL的循环,ML的解释器的求值单位是expressions,任何一个expressions必有值,用类型的角度看,eval(expressions) 返回类型是 int/float/function的一种.
erlang用英文的句号“.”表示一个完整的表达式,而ML用英文的";"代表一个完整表达式。
1. ML的变量命名。
val var_name = 60;