SML 迭代与递归

问题描述

我有一个简单但可能无知的问题。我正在为一门编程语言课程做作业,此时我们正在使用 SML。谁能告诉我如何最好地逐步浏览列表?我们有一个问题,要求我们计算给定列表中负数的数量。最好通过递归或迭代来实现这一点,是否有 SML 文档可以帮助我学习语言?

解决方法

谁能告诉我如何最好地逐步浏览列表?

通过列表结构上的模式匹配:要么列表为空,并且没有更多的单步执行,要么列表至少多一个元素,在这种情况下,我们对该元素做一些事情并单步执行其余的清单。

fun sum [] = 0
  | sum (x::xs) = x + sum xs

计算给定列表中负数的数量

展示一个这样的尝试,以便您可以得到反馈。

最好用递归还是迭代来做到这一点

递归。

是否有 SML 文档可以帮助我学习语言?

您的课程应提供或推荐教科书。

我所知道的最短介绍是 Learn X in Y minutes,其中 X = 标准 ML。