string - 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
将附加到输出选项的东西上,我不知道该怎么做。
编辑:谢谢大家!
解决方案
听起来您需要一个新功能:
fun some_option(s,sl) = SOME( all_except_option(s, sl) )
好吧,不完全是这样,因为它不处理all_except_option
返回的情况[]
,但我将把它留作练习。
推荐阅读
- json - AWS Glue - Redshift 中具有 Json 结构的字段
- node.js - Amazon Connect CCP 未在 HTML iframe 中显示
- ada - 英特尔芯片上 Apple BigSur 上的 AdaCore 的 GNAT 社区版
- azure-data-factory - 接收器表错误中的 ADF 映射数据 - 接收器表保持为空
- wordpress - WooCommerce 按 SKU 排序 - 获取正确的数字顺序
- javascript - 为什么我的 Rubik 字体呈现为 sans-serif(我知道 Rubik 本质上是 sans-serif 的子代)?
- html - 每个索引级别的 HTML/CSS 表格不同的垂直边距
- javascript - Node.js 在构建时堆内存不足
- javascript - 通过按钮自动复制和粘贴 iframe 加载的数据
- javascript - 无法在上下文中更新状态