【发布时间】:2013-01-31 18:04:27
【问题描述】:
我有这个函数,它接受一个字符串列表和一个字符串,然后返回每个列表中所有元素的列表,其中包含传递的字符串但没有传递的字符串。
myfilter([["a","b"],["c","d"],["e","a","x"]], "a") -> ["b","e","x"]
fun myfilter(list : string list list, s : string) =
case list of
[] => []
|xs::xs' => case all_except_option(s, xs) of (* helper function that does it for a string and a list of strings *)
NONE => []
|SOME n => if n = xs
then myfilter(xs',s)
else n@myfilter(xs',s)
现在你可以看到这是一个递归函数,我想将它转换为一个尾递归函数。我熟悉尾递归的示例,但我看不到如何在上面的函数中做到这一点
【问题讨论】:
-
你也不应该得到“提示”,正如你的作业中所指定的那样。请重新观看最后三堂课。
-
你看过讨论板吗?它充满了它们。来到这里是因为那里没有太多帮助解决这个问题,我不想在那里发布我的代码
标签: sml