首页 > 解决方案 > SML 列表选项撤销;如何使用递归输出一些列表

问题描述

目前,我的代码接受一个字符串s和一个字符串列表sl,并返回一个s被删除的字符串列表(一次)

fun all_except_option (s, sl) =
    case sl of
    [] => []
      | hd::tl = if same_string(s, hd)
          then tl
          else hd::all_except_option(s, tl) 

NONE但是,如果字符串s不在列表中,我想要返回,如果是,则返回SOME (当前函数的输出)。但是,我不能简单地添加SOME(之前,hd::all_except_option(s, tl)因为hd将附加到输出选项的东西上,我不知道该怎么做。

编辑:谢谢大家!

标签: stringlistrecursionsml

解决方案


听起来您需要一个新功能:

fun some_option(s,sl) = SOME( all_except_option(s, sl) )

好吧,不完全是这样,因为它不处理all_except_option返回的情况[],但我将把它留作练习。


推荐阅读