github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/talks/2013/bestpractices/funcdraw/parser/parser.go (about) 1 // +build ignore,OMIT 2 3 package parser 4 5 // START OMIT 6 type ParsedFunc struct { 7 text string 8 eval func(float64) float64 9 } 10 11 func Parse(text string) (*ParsedFunc, error) { 12 f, err := parse(text) 13 if err != nil { 14 return nil, err 15 } 16 return &ParsedFunc{text: text, eval: f}, nil 17 } 18 19 func (f *ParsedFunc) Eval(x float64) float64 { return f.eval(x) } 20 func (f *ParsedFunc) String() string { return f.text } 21 22 // END OMIT 23 func parse(text string) (func(float64) float64, error) { 24 return func(x float64) float64 { return x }, nil 25 }