【发布时间】:2014-12-22 02:10:10
【问题描述】:
所以,我正在尝试解决这个问题,它说,
编写一个函数来从字符列表中取出下一个单词。该函数将单词的元组作为字符列表和列表的其余部分返回。
例如下一个 [#”t”,#”h”,#”e”,#” “,#”c”,#”a”,#”t”] ==> ([#“那只猫”,#” ”…。]) : 字符列表 * 字符列表
• 如果列表为空,则返回两个空列表的元组
• 如果列表以非字母开头,则返回空列表和列表的元组
• 否则,从列表的尾部取出下一个单词的其余部分,返回下一个单词的其余部分和列表尾部的其余部分的元组,放入原始列表的头部,即单词的头部,到单词其余部分的前面,并返回整个单词列表和列表尾部的其余部分
• 提示:使用带有元组模式的 let 来匹配单词的其余部分和列表尾部的其余部分的元组
到目前为止我的方法: - 有趣的下一个 [] = ([],[]) | next (x::xs) = if x = chr 32 then ([],(x::xs)) else ???
【问题讨论】:
-
澄清提示:
let (tail_of_word, rest_of_list) = ... in ???。您需要在“...”部分使用递归。
标签: smlnj