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.0.7 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.6 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.5 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.4 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.3 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.2 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.1 tracks/go/exercises/pig-latin/example.go
trackler-2.0.0.0 tracks/go/exercises/pig-latin/example.go
trackler-1.0.4.1 tracks/go/exercises/pig-latin/example.go
trackler-1.0.4.0 tracks/go/exercises/pig-latin/example.go
trackler-1.0.3.0 tracks/go/exercises/pig-latin/example.go
trackler-1.0.2.1 tracks/go/exercises/pig-latin/example.go
trackler-1.0.2.0 tracks/go/exercises/pig-latin/example.go
trackler-1.0.1.2 tracks/go/exercises/pig-latin/example.go
trackler-1.0.1.1 tracks/go/exercises/pig-latin/example.go
trackler-1.0.1.0 tracks/go/exercises/pig-latin/example.go
trackler-1.0.0.1 tracks/go/exercises/pig-latin/example.go
trackler-1.0.0 tracks/go/exercises/pig-latin/example.go