小编use*_*876的帖子

案例陈述和模式匹配

我正在用SML编写一个作业,我已经做了一些练习问题,我觉得我错过了一些东西 - 我觉得我使用了太多的case陈述.这就是我正在做的事情以及我遇到问题的问题陈述:

  1. 编写一个函数all_except_option,它接受一个字符串和一个字符串列表.如果字符串不在列表中,则返回NONE,否则返回SOME lst,其中lst与参数列表类似,但字符串不在其中.

    fun all_except_option(str : string, lst : string list) =
      case lst of 
       [] => NONE
      | x::xs => case same_string(x, str) of
                   true => SOME xs
                 | false => case all_except_option(str, xs) of
                              NONE => NONE
                            | SOME y=> SOME (x::y)  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 编写一个函数get_substitutions1,它接受一个字符串列表列表(字符串列表,替换列表)和一个字符串s并返回一个字符串列表.结果具有某些列表中的所有字符串,这些字符串也具有s,但s本身不应该在结果中.

    fun get_substitutions1(lst : string list list, s : string) = 
      case lst of
        [] => []
      | x::xs => case all_except_option(s, x) of
                     NONE => get_substitutions1(xs, s)
                    | SOME y => …
    Run Code Online (Sandbox Code Playgroud)

functional-programming case sml pattern-matching

7
推荐指数
1
解决办法
1万
查看次数