Recursion 如何在SML中生成输入/输出元组?

Recursion 如何在SML中生成输入/输出元组?,recursion,functional-programming,sml,caml,ml,Recursion,Functional Programming,Sml,Caml,Ml,我在SML的一个项目中工作,我需要编写一个函数,将函数和整数作为输入。此函数需要为传递给它的给定函数生成输入/输出元组列表。例如,如果我这样调用函数: finiteListRepresentation(square, 5); 其中: fun square(x) = x*x 函数需要返回元组列表: [(1,1),(2,4),(3,9),(4,16),(5,25)] 显然,平方函数可以是任何函数,例如整数立方函数或类似的函数。我遇到的问题是让函数递归地“访问”从指定值开始的每个整数。我对SML

我在SML的一个项目中工作,我需要编写一个函数,将函数和整数作为输入。此函数需要为传递给它的给定函数生成输入/输出元组列表。例如,如果我这样调用函数:

finiteListRepresentation(square, 5);
其中:

fun square(x) = x*x
函数需要返回元组列表:

[(1,1),(2,4),(3,9),(4,16),(5,25)]
显然,平方函数可以是任何函数,例如整数立方函数或类似的函数。我遇到的问题是让函数递归地“访问”从指定值开始的每个整数。我对SML非常陌生,我可以让函数返回单个值,例如:

finiteListRepresenation(f, x) = [(x, f(x))]
有人能帮我概括一下这个函数,从1开始计算每个值,直到它达到指定的整数吗


感谢您的帮助。

由于您似乎在寻找提示而非解决方案,请查看并尝试找出它的帮助方式:

val map : ('a -> 'b) -> 'a list -> 'b list
f
从左到右应用于
l
的每个元素,返回结果列表


由于您似乎在寻找提示而非解决方案,请查看并尝试找出它的帮助方式:

val map : ('a -> 'b) -> 'a list -> 'b list
f
从左到右应用于
l
的每个元素,返回结果列表

我遇到的问题是让函数递归地“访问”从指定值开始的每个整数

尝试编写一个helper函数
range:int*int->int list
,它枚举下限和上限之间的整数。比如说,

val [2,3,4,5,6,7] = range (2, 7)

开始时,考虑递归地执行<代码>范围>代码>。这里有一个提示:

(* assume i <= j *)
fun range (i, j) =
  if i = j then (* TODO *)
  else i :: (* TODO *)
(*假设我
我遇到的问题是让函数递归地“访问”从指定值开始的每个整数

尝试编写一个helper函数
range:int*int->int list
,它枚举下限和上限之间的整数。例如

val [2,3,4,5,6,7] = range (2, 7)

开始时,考虑递归地执行<代码>范围>代码>。这里有一个提示:

(* assume i <= j *)
fun range (i, j) =
  if i = j then (* TODO *)
  else i :: (* TODO *)

(*假设我感谢您的回答。我想我的主要问题是在SML中递归枚举数字。例如,如果我想生成一个函数,该函数接受一个整数并生成一个从1到该整数的列表,我将如何递归执行此操作?谢谢您的回答。我想我的主要问题是递归枚举nu例如,如果我想创建一个函数,该函数接受一个整数并生成一个从1到该整数的列表,我该如何递归地执行此操作?