我正在寻找一个SML函数,它接受一个非负整数并返回一个列表,其中包含从0开始但不包括给定值的所有整数,类似于Python中的range()函数。是的,我可以(并且已经)编写自己的函数,但我更喜欢内置的函数,这样我就不需要在每个项目中都复制和粘贴它。有什么建议吗?提前感谢!
% Python code
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
(* SML code: my implementation; I'd prefer a built-in version *)
fun range x =
let fun helper current stop =
if current = stop
then nil
else current :: (helper (current + 1) stop)
in helper 0 x
end;
(* my code when run *)
- range 10;
val it = [0,1,2,3,4,5,6,7,8,9] : int list