Folks, 我最近在Scala上编写了一些代码来教我自己的语言,在最近的一些实验中,我从用户的输入中使用了an NLP library to produce a set of part-of-speech tagged words。Idiomatic Scala List Comprehension - 第一个匹配的项目
我想写一个函数,给我第一个动词的句子。如果没有动词,那么我想假定集合中的第一个单词是动词(例如,如果玩家只是输入“谁”或“正常运行时间”,那么这些被我的游戏视为动词)。
以下是一段如此丑陋的代码块,只有母亲才会喜欢,而且它对命令式编程很臭,我想将它重构成更像惯用的Scala,理想情况是没有单个“if”在它的声明。
def firstVerb = {
if (words.size == 1)
words.head.value
else {
val outWords = words.filter(word => word.pos == Verb)
if (outWords == Set.empty)
words.head.value
else
outWords.head.value
}
}
的“字”变量的类型ListBuffer [EnrichedWord],其中EnrichedWord是我的类,它包含语音的部分的(位置,包含壳体对象像动词,名词,等)和原始单词(值)。
任何指导你斯卡拉天才可以提供重构这个对接丑陋的代码将是太棒了。
“......只有妈妈才会喜欢。” “ – 2017-06-16 10:10:04
......只有一位母亲才会喜欢。”我今天看过的最佳短语! – 2017-06-16 10:11:55