func main() { console := lisp.NewLisp() console.Eval([]byte(` (each (define (f x y z) (+ (+ x y) z) ) (define F (default f 1 2 3) ) (println (F) ) (println (F 3) ) (println (F 3 2) ) (println (F 3 2 1) ) ) `)) }
func init() { lisp.Add("int", conv.Int) lisp.Add("float", conv.Float) lisp.Add("list", conv.List) lisp.Add("string", conv.String) lisp.Add("sin", math.Sin) lisp.Add("sinh", math.Sinh) lisp.Add("asin", math.Asin) lisp.Add("asinh", math.Asinh) lisp.Add("cos", math.Cos) lisp.Add("cosh", math.Cosh) lisp.Add("acos", math.Acos) lisp.Add("acosh", math.Acosh) lisp.Add("tan", math.Tan) lisp.Add("tanh", math.Tanh) lisp.Add("atan", math.Atan) lisp.Add("atanh", math.Atanh) lisp.Add("exp", math.Exp) lisp.Add("log", math.Log) lisp.Add("pow", math.Pow) lisp.Add("sqrt", math.Sqrt) env = lisp.NewLisp() }
func main() { console := lisp.NewLisp() console.Eval([]byte(` (each (define (g x y) (cons x y) ) (define G (omission g) ) (println (G 3) ) (println (G 3 2) ) (println (G 3 2 1) ) ) `)) }