Sha256: 41baaf04a9c6888dd2a0e67660c5edb9f9802ad6dad49c8b79baf4830134c36b

Contents?: true

Size: 596 Bytes

Versions: 118

Compression:

Stored size: 596 Bytes

Contents

package allergies

import "math"

var allergens = []string{"eggs", "peanuts", "shellfish", "strawberries", "tomatoes", "chocolate", "pollen", "cats"}

func Allergies(i uint) []string {
	var result []string
	for _, v := range allergens {
		if AllergicTo(i, v) {
			result = append(result, v)
		}
	}
	return result
}

func AllergicTo(i uint, allergen string) bool {
	index := indexOf(allergens, allergen)
	x := uint(math.Pow(2.0, float64(index)))
	return (i & x) > 0
}

func indexOf(slice []string, string string) int {
	for p, v := range slice {
		if v == string {
			return p
		}
	}
	return -1
}

Version data entries

118 entries across 118 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/allergies/example.go
trackler-2.2.1.179 tracks/go/exercises/allergies/example.go
trackler-2.2.1.178 tracks/go/exercises/allergies/example.go
trackler-2.2.1.177 tracks/go/exercises/allergies/example.go
trackler-2.2.1.176 tracks/go/exercises/allergies/example.go
trackler-2.2.1.175 tracks/go/exercises/allergies/example.go
trackler-2.2.1.174 tracks/go/exercises/allergies/example.go
trackler-2.2.1.173 tracks/go/exercises/allergies/example.go
trackler-2.2.1.172 tracks/go/exercises/allergies/example.go
trackler-2.2.1.171 tracks/go/exercises/allergies/example.go
trackler-2.2.1.170 tracks/go/exercises/allergies/example.go
trackler-2.2.1.169 tracks/go/exercises/allergies/example.go
trackler-2.2.1.167 tracks/go/exercises/allergies/example.go
trackler-2.2.1.166 tracks/go/exercises/allergies/example.go
trackler-2.2.1.165 tracks/go/exercises/allergies/example.go
trackler-2.2.1.164 tracks/go/exercises/allergies/example.go
trackler-2.2.1.163 tracks/go/exercises/allergies/example.go
trackler-2.2.1.162 tracks/go/exercises/allergies/example.go
trackler-2.2.1.161 tracks/go/exercises/allergies/example.go
trackler-2.2.1.160 tracks/go/exercises/allergies/example.go