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.2.1.62 tracks/go/exercises/pig-latin/example.go
trackler-2.2.1.61 tracks/go/exercises/pig-latin/example.go
trackler-2.2.1.60 tracks/go/exercises/pig-latin/example.go
trackler-2.2.1.59 tracks/go/exercises/pig-latin/example.go
trackler-2.2.1.58 tracks/go/exercises/pig-latin/example.go
trackler-2.2.1.57 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.11 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.10 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.9 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.8 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.7 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.6 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.5 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.4 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.3 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.2 tracks/go/exercises/pig-latin/example.go
trackler-2.0.8.1 tracks/go/exercises/pig-latin/example.go
trackler-2.0.7.0 tracks/go/exercises/pig-latin/example.go
trackler-2.0.6.44 tracks/go/exercises/pig-latin/example.go
trackler-2.0.6.43 tracks/go/exercises/pig-latin/example.go