示例#1
0
        public override void RegisterMessages()
        {
            base.RegisterMessages();

            collectionMessages();
            messages["list"] = (obj, _) => function <List>(obj, l => l);

            messages["head".get()]    = (obj, _) => function <List>(obj, l => someOf(l.Head));
            messages["tail".get()]    = (obj, _) => function <List>(obj, l => l.Tail);
            messages["init".get()]    = (obj, _) => function <List>(obj, l => l.Init);
            messages["last".get()]    = (obj, _) => function <List>(obj, l => someOf(l.Last));
            messages["~"]             = (obj, msg) => function <List, List>(obj, msg, (l1, l2) => l1.Concatenate(l2));
            messages["isEmpty".get()] = (obj, _) => function <List>(obj, l => Boolean.BooleanObject(l.IsEmpty));
            messages["[]"]            = (obj, msg) => function <List, Int>(obj, msg, (l, i) => l[i.Value]);
        }
示例#2
0
 public override IMatched <IObject> Execute(Machine machine)
 {
     return(getValue(pop, machine, className).Map(value => Boolean.BooleanObject(value.ClassName == className)));
 }
示例#3
0
文件: Equal.cs 项目: toddcoder/Kagami
 public override IMatched <IObject> Execute(Machine machine, IObject x, IObject y) => Boolean.BooleanObject(x.IsEqualTo(y)).Matched();
示例#4
0
 public override IMatched <IObject> Execute(Machine machine, INumeric x) => Boolean.BooleanObject(x.IsNegative).Matched();