Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
31
Task/Determine-sentence-type/Nim/determine-sentence-type.nim
Normal file
31
Task/Determine-sentence-type/Nim/determine-sentence-type.nim
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
type SentenceType {.pure.} = enum Q, E, S, N
|
||||
|
||||
func sentenceType(s: string): SentenceType =
|
||||
## Return the type of a sentence.
|
||||
if s.len == 0: return
|
||||
result = case s[^1]
|
||||
of '?': Q
|
||||
of '!': E
|
||||
of '.': S
|
||||
else: N
|
||||
|
||||
iterator sentences(text: string): string =
|
||||
## Cut a text into sentences.
|
||||
var sentence = ""
|
||||
for ch in text:
|
||||
if ch == ' ' and sentence.len == 0: continue
|
||||
sentence.add ch
|
||||
if ch in "?!.":
|
||||
yield sentence
|
||||
sentence.reset()
|
||||
if sentence.len > 0:
|
||||
yield sentence
|
||||
|
||||
|
||||
const Text = "hi there, how are you today? " &
|
||||
"I'd like to present to you the washing machine 9001. " &
|
||||
"You have been nominated to win one of these!" &
|
||||
"Just make sure you don't break it"
|
||||
|
||||
for sentence in Text.sentences():
|
||||
echo sentence, " → ", sentenceType(sentence)
|
||||
Loading…
Add table
Add a link
Reference in a new issue