子函数 ml

Sub functions ml

所以我正在尝试为 ml 课程做作业,问题是该函数需要一个集合类型:例如 int * int -> int,我认为解决问题的方法是使用另一个函数(比如迭代)来解决问题。

我相信 lisp 有某种方法可以让一个函数只在另一个函数的范围内。

我认为可以做到:

fun a (x, y) = 
  let
     fun b (i,j) = ...;
  in
  ...;

[不确定这个的确切语法,但我记得读过类似这样的东西,它只是用于临时变量(可能是函数?]

如有错误请指正

在 ML 中,函数首先是 class 公民(即值)。您可以像任何其他值一样通过 let 绑定它们。

所以,你的想法是正确的。对于作为 "iterators"(即 map/fold/iter)传递的函数来说,这是一个很好的设计。你的问题太笼统了,没有进一步的建议。