var LogicGate = map[string]string{ "OR": "OR", "AND": "AND", "NOT": "NOT", "NOR": "NOR", "NAND": "NOR", "XOR": "XOR", } func isLogicGate(inString string) (bool) { _, ok := LogicGate[strings.ToUpper(inString)] if ok { return true } else { return false } } func stringAsGateLogic(inString string) (bool, error) { inSplit := strings.Split(inString, " ") var phrase1 strings.Builder var phrase2 stringa.Builder var gateString string for word := range inSplit { if isLogicGate(word) { if len(gateString) < 1{ gateString = word } else { phrase2.WriteString(word) } } else { if len(gateString) < 1{ phrase1.WriteString(word) } else { phrase2.WriteString(word) } } } boolPhrase1 := bool(phrase1.String()) boolPhrase2 := bool(phrase2.String()) switch strings.ToUpper(gateString) { case "OR": return (boolPhrase1 || boolPhrase2), nil case "AND": return (boolPhrase1 && boolPhrase2), nil case "NOT": return (!boolPhrase2), nil case "NOR": return (!(boolPhrase1 || boolPhrase2)), nil case "NAND": return (!(boolPhrase1 && boolPhrase2) case "XOR": orRes := (boolPhrase1 || boolPhrase2) nandRes := (!(boolPhrase1 && boolPhrase2)) return (orRes && nandRes), nil default: return false, fmt.Errorf("Why you do dis?: %v", inString) } } func main(){ answer, err := stringAsGateLogic ("This person misunderstands a beautiful function code can be very sexy or maybe I'm a odd girl.") if err != nil { fmt.Println(err) } fmt.Println(answer) }
Sorry, Hungarian notation is not beautiful.
Fair.
if ok { return true } else { return false }
Why?
Idiomatic Go way of checking for the presence of a key in a map.
You make want to cry, when are we marrying?
I want a divorce
Sorry, merge conflict :(
isLogicGate is not used. Maybe you mean to place it in "isGate" in the stringAsGateLogic for loop's if statement?
Thank you. That's what I get for writing a drawn-out shitpost program on my phone over several hours while away from home, instead of in a few minutes in vim.
Post funny things about programming here! (Or just rant about your favourite programming language.)
Sorry, Hungarian notation is not beautiful.
Fair.
Why?
Idiomatic Go way of checking for the presence of a key in a map.
You make want to cry, when are we marrying?
I want a divorce
Sorry, merge conflict :(
isLogicGate is not used. Maybe you mean to place it in "isGate" in the stringAsGateLogic for loop's if statement?
Thank you. That's what I get for writing a drawn-out shitpost program on my phone over several hours while away from home, instead of in a few minutes in vim.