У меня есть список символов [#"h", #"i", #" ", #"h", #"i"]
, который я хочу получить из этого первого слова (первая последовательность символов перед каждым пространством).Попытка получить первое слово из списка символов
Я написал функцию, которая дает мне это предупреждение:
STDIN: 13.1-13.42 Внимание: тип VARS не обобщенному из значения ограничений инстанцируется для фиктивных типов (X1, X2, .. .)
Вот мой код:
fun next [] = ([], [])
| next (hd::tl) = if(not(ord(hd) >= 97 andalso ord(hd) <= 122)) then ([], (hd::tl))
else
let
fun getword [] = [] | getword (hd::tl) = if(ord(hd) >= 97 andalso ord(hd) <= 122) then [hd]@getword tl else [];
in
next (getword (hd::tl))
end;
EDIT:
Ожидаемый ввод и вывод
next [#"h", #"i", #" ", #"h", #"i"] => ([#"h", #"i"], [#" ", #"h", #"i"])
Может кто-нибудь помочь мне с этим решением? Благодаря!
Целью было не использовать общие функции ML, и нам приходилось все это рекурсивно делать. Но то, что вы предлагаете, работает очень хорошо! спасибо – madcrazydrumma