标准ML入门

Tom*_*oss 5 functional-programming ml sml

我正在寻找某种"适合初学者的ML"指南 - 谷歌带领我到目前为止一些不起眼的邮件列表或者我的头脑文本.

问题是,到目前为止我没有任何函数式编程经验,并且围绕这些概念的理解比预期的要困难得多.例如,我现在要做的任务(是的,大学:))是在两个列表(a,b)和(c,d)之间进行映射,因此结果是(a,d)的列表)从b = c的对.

我通常会做的是:

result = []
for each x in list1 do
  for each y in list2 do
    if x.b == y.c result.add (x.a, y.d)
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,我甚至无法开始在SML中实现类似的东西.例如,我知道我可以使用嵌套map f list的迭代遍历列表.但是,运行时(SML/NJ)仅对仅将列表元素作为参数的函数接受此操作.但是,如果我只能在两个列表中的某个列表中运行,我怎么知道要返回哪些元素呢?

我迫切需要一种能够解决这类问题的资源,最好是使用大量友好信件和大量代码示例:/

小智 8

由CMU的Robert Harper教授编写的标准ML编程


Bar*_*own 5

我有一些书签的SML资源:

标准ML '97中的编程:ML编程的在线教程
基本标准ML(亚马逊Kindle)
元素(amazon.com)