ML程序找到给定列表的首字母缩略词

时间:2017-11-26 15:00:12

标签: sml ml

我正在研究和学习ML语言。我遇到了一个问题并且很难解决它。我确定我会使用Traverse,Size和Substring函数,但我不能用某种方式,我有点困惑。你能帮忙吗?

问题:

val x = [ ["National", "Aeronautics", "and", "Space", "Administration"]
        , ["The", "North", "Atlantic", "Treaty", "Organization"]
        ]

示例运行:

val it = [ {acronym="NASA", name="National Aeronautics and Space Administration"},
         , {acronym="NATO", name="The North Atlantic Treaty Organization"}
         ]
       : nm list

1 个答案:

答案 0 :(得分:2)

查看问题中的信息,我猜测问题的目标是编写符合以下规范的函数acronyms。我已经采取了一些自由重命名类型以使其更清晰:

type words = string list
type summary = {acronym : string, name : string}

val acronyms : words list -> summary list

此功能获取组织名称列表(已拆分为单词)并生成摘要列表。输出中的每个摘要都会根据输入描述相应的组织。

棘手的部分是编写一个函数acronym : words -> summary来计算单个摘要。例如,

- acronym ["National", "Aeronautics", "and", "Space", "Administration"];
val it = {acronym="NASA",name="National Aeronautics and Space Administration"}
  : summary

拥有此功能后,您可以使用List.map将其应用于输入的每个组织名称:

fun acronyms orgs = List.map acronym orgs

我会将acronym功能留给您。作为开始的提示,请考虑过滤单词列表以删除诸如“and”和“the”之类的单词。