func OrFromMap(f ConditionalFunc, m map[string]interface{}) stmt.Expr {
	if f == nil {
		panic("unspecified function")
	}
	if len(m) < 2 {
		for key, val := range m {
			return f(key, val)
		}
		return nil
	}
	exprs := convertMapToStmts(f, m)
	return Or(exprs[0], exprs[1], exprs[2:]...)
}
OrFromMap Creates a concatenated string of OR boolean expression from a map.

If there is no first argument then occurs panic.
If map length is zero it returns nil.
If map length is 1 it returns *stmt.Condition created by ConditionalFunc.
package sqb
import (
	"sort"
	"github.com/Code-Hex/sqb/stmt"
)
func Paren(expr stmt.Expr) *stmt.Paren {
	return &stmt.Paren{
		Expr: expr,
	}
}
func And(left, right stmt.Expr, exprs ...stmt.Expr) *stmt.And {
	ret := &stmt.And{
		Left:  left,
		Right: right,
	}
	for _, expr := range exprs {
		ret = &stmt.And{
			Left:  ret,
			Right: expr,
		}
	}
	return ret
}
func Or(left, right stmt.Expr, exprs ...stmt.Expr) *stmt.Or {
	ret := &stmt.Or{
		Left:  left,
		Right: right,
	}
	for _, expr := range exprs {
		ret = &stmt.Or{
			Left:  ret,
			Right: expr,
		}
	}
	return ret
}
func AndFromMap(f ConditionalFunc, m map[string]interface{}) stmt.Expr {
	if f == nil {
		panic("unspecified function")
	}
	if len(m) < 2 {
		for key, val := range m {
			return f(key, val)
		}
		return nil
	}
	exprs := convertMapToStmts(f, m)
	return And(exprs[0], exprs[1], exprs[2:]...)
}