本文整理汇总了Golang中code/google/com/p/gelo.List类的典型用法代码示例。如果您正苦于以下问题:Golang List类的具体用法?Golang List怎么用?Golang List使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了List类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: plugin
func (p *ConfigParser) plugin(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac != 2 {
gelo.ArgumentError(vm, "plugin", "<name> {body}", args)
}
name := args.Value.Ser().String()
body := vm.API.QuoteOrElse(args.Next.Value)
checkInSection(vm, "plugin", "plugins")
insideSection(vm, "plugin", name,
func() {
p.conf.Plugins[name] = new(conf.PluginConf)
p.conf.Plugins[name].Name = name
vm.API.InvokeCmdOrElse(body, args)
p.conf.Plugins[name].Options = make(map[string][]string)
d := getOrMakeDict(vm, "data")
for k, v := range d.Map() {
var elements []string
args.Slice()
for e := vm.API.ListOrElse(v); e != nil; e = e.Next {
elements = append(elements, e.Value.Ser())
}
p.conf.Plugins[name].Options[k] = elements
}
},
)
return nil
}
示例2: Value
//For each item, Value acts as the identity unless the item is a quote.
//If it is a quote attempt to invoke and return result if there were no errors
//If invocation fails for any reason Value returns the quote as a literal.
func Value(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "value", "items+", "")
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return vm.API.TailInvokeWordOrReturn(w)
})
}
示例3: Copy
func Copy(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "copy", "values+", "")
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return w.Copy()
})
}
示例4: Type_of
func Type_of(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "type-of", "value+", "")
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return w.Type()
})
}
示例5: NaNp
func NaNp(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.False
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return gelo.ToBool(math.IsNaN(vm.API.NumberOrElse(w).Real()))
})
}
示例6: Negativep
func Negativep(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.False
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return gelo.ToBool(vm.API.NumberOrElse(w).Real() < 0)
})
}
示例7: Not
// Unlike And and Or, Not only works on bools
func Not(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.False
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
return gelo.ToBool(!vm.API.BoolOrElse(w).True())
})
}
示例8: Setp
func Setp(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "set?", "name+", args)
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
_, ok := vm.Ns.Lookup(w)
return gelo.ToBool(ok)
})
}
示例9: Abs
func Abs(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.NewNumber(0)
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
n := vm.API.NumberOrElse(w).Real()
return gelo.NewNumber(math.Abs(n))
})
}
示例10: Invokablep
func Invokablep(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.False
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
_, ok := vm.API.IsInvokable(w)
return gelo.ToBool(ok)
})
}
示例11: Integerp
func Integerp(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.False
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
n := vm.API.NumberOrElse(w)
_, ok := n.Int()
return gelo.ToBool(ok)
})
}
示例12: Unsetx
func Unsetx(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "unset!", "name+", args)
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
val, ok := vm.Ns.Del(w)
if !ok {
gelo.VariableUndefined(vm, w)
}
return val
})
}
示例13: InvokableOrId
func InvokableOrId(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.Null
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
i, ok := vm.API.IsInvokable(w)
if !ok {
return w
}
return i
})
}
示例14: NumberCon
func NumberCon(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
return gelo.NewNumber(0)
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
if n, ok := w.(*gelo.Number); ok {
return n
}
if n, ok := gelo.NewNumberFromBytes(w.Ser().Bytes()); ok {
return n
}
return gelo.False
})
}
示例15: Sgn
func Sgn(vm *gelo.VM, args *gelo.List, ac uint) gelo.Word {
if ac == 0 {
gelo.ArgumentError(vm, "sgn", "number+", "")
}
return args.MapOrApply(func(w gelo.Word) gelo.Word {
n := vm.API.NumberOrElse(w).Real()
switch {
case n < 0:
n = -1
case n > 0:
n = 1
case n == 0:
n = 0
}
return gelo.NewNumber(n)
})
}