我试着编写执行以下操作的功能,发生在:使用“让”给一个元组分配到SML值
[ #"t" ,#"h" ,#"e" ,#" " ,#"c" ,#"a" ,#"t" ]
以下是输出:
([#"t" ,#"h" ,#"e" ] , [#" " ,#"c" ,#"a" ,#"t" ])
到目前为止,我..
fun isLetter c = #"a" <= c andalso c <= #"z";
//(this works fine and is used within the main function wordPop)
fun wordPop [] = ([],[])
| wordPop (hd::tl) = if not (isLetter hd)
then ([], hd::tl)
else (* ...not too sure... (1) *)
我知道我必须做一些事情,看起来像这样的(1)
let (wordPop tl) in (x,y) end;
并以某种方式将x添加到x。但不是100%确定如何做到这一点。
看来你正试图清单分成两半,在这种情况下的事实,这是一个字符的列表是不相关的。也许你可以解释你正在努力做得更清楚。 –
好的,我给了一个短语,这个短语是上面显示的输入形式。我必须将这个输入分解成一个元组,其中第一个是该短语中的第一个单词,第二个是该短语的其余部分。我不确定这是否足够清楚,对不起,我说话不太好。 – James
所以你可以看到我正在检查列表中的第一个值是否是一个字母(如果它不是那么这是一个空间,在这种情况下它是第一个单词的结尾),如果它是,那么我需要能够在我使用最新的短语的同时逐步完成创建新元组的功能。那么,在到达非字母字符后,它应该返回元组。 – James