Exemple #1
0
func define(s *scheme.Scope, args []scheme.Sexpr) (scheme.Sexpr, error) {
	if len(args) != 2 {
		return nil, scheme.ProcError("define requires exactly 2 arguments")
	}
	idSym, ok := args[0].(*scheme.Symbol)
	if !ok {
		return nil, scheme.ProcError("invalid argument to define")
	}
	val, err := eval.Eval(s, args[1])
	if err != nil {
		return nil, err
	}
	s.DefineHigh(idSym, val)
	return scheme.Nil, nil
}