Sha256: e63a833e393813c086d72fffb2e6501eee69d0f7d8d76a7274c030ebd6a18b8b

Contents?: true

Size: 473 Bytes

Versions: 138

Compression:

Stored size: 473 Bytes

Contents

package igpay

import (
	"regexp"
	"strings"
)

var vowel = regexp.MustCompile(`^([aeiou]|y[^aeiou]|xr)[a-z]*`)
var cons = regexp.MustCompile(`^([^aeiou]?qu|[^aeiou]+)([a-z]*)`)

func PigLatin(s string) string {
	sw := strings.Fields(s)
	for i, w := range sw {
		l := strings.ToLower(w)
		if vowel.MatchString(l) {
			sw[i] = l + "ay"
		} else if x := cons.FindStringSubmatchIndex(l); x != nil {
			sw[i] = l[x[3]:] + l[:x[3]] + "ay"
		}
	}
	return strings.Join(sw, " ")
}

Version data entries

138 entries across 138 versions & 1 rubygems

Version Path
trackler-2.0.6.2 tracks/go/exercises/pig-latin/example.go
trackler-2.0.6.1 tracks/go/exercises/pig-latin/example.go
trackler-2.0.6.0 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.18 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.17 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.16 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.15 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.14 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.13 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.12 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.11 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.10 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.9 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.8 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.7 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.6 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.5 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.4 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.3 tracks/go/exercises/pig-latin/example.go
trackler-2.0.5.2 tracks/go/exercises/pig-latin/example.go