【发布时间】:2013-12-18 22:12:42
【问题描述】:
您好,我对 ML/SML 比较陌生,我正在尝试编写将 2 个列表作为输入的函数。第一个列表包含 4 个随机字符串 ["duck","goose","swan","gull"],第二个列表包含另外 4 个字符串 ["duck","swan","goose","pigeon"]。
我想做的是检查第一个列表中的每个元素与另一个元素。如果字符串在相同的位置并且相等,则输出“是”。如果元素不在同一位置但在列表中,则输出'maybe',如果元素不在第二个列表中,则输出'no'。
因此,鉴于上面的 2 个示例,它将输出 ["yes","maybe","maybe","no"]。
这是我到目前为止所做的,但我不知道如何继续递归调用主函数 checkEqual 来迭代整个第一个列表。
fun buildStringList nil nil = nil
|buildStringList lst appList =
lst @ appList
in
fun checkEqual nil nil = nil
| checkEqual code guess =
if hd code = hd guess then
buildStringList ([])(["yes"])
else if hd code = hd(tl guess) then
buildStringList ([])(["maybe"])
else if hd code = hd(tl(tl guess)) then
buildStringList ([])(["maybe"])
else if hd code = hd(tl(tl(tl guess))) then
buildStringList ([])(["maybe"])
else
buildStringList ([])(["no"])
end;
任何帮助将不胜感激。
【问题讨论】: