Odd word problem: Difference between revisions

Content deleted Content added
Line 34: Line 34:
func owp(dst io.Writer, src io.Reader) {
func owp(dst io.Writer, src io.Reader) {
b := make([]byte, 1)
b := make([]byte, 1)
var odd func(s byte) byte
odd := func(s byte) byte {
odd = func(s byte) byte {
if unicode.IsPunct(rune(s)) {
if unicode.IsPunct(rune(s)) {
return s
return s
Line 69: Line 68:
we,era;not,ni,kansas;yna,more.
we,era;not,ni,kansas;yna,more.
</pre>
</pre>
A different approach...
A different approach, using <code>defer</code>:
<lang go>package main
<lang go>package main


Line 110: Line 109:
}
}
}
}
odd()
func() {
for {
src.Read(b)
if unicode.IsPunct(rune(b[0])) {
break
} else {
defer dst.Write([]byte{b[0]})
}
}
}
()
dst.Write(b)
dst.Write(b)
if b[0] == '.' {
if b[0] == '.' {