我正在研究和学习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
答案 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”之类的单词。