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]); }
public override IMatched <IObject> Execute(Machine machine) { return(getValue(pop, machine, className).Map(value => Boolean.BooleanObject(value.ClassName == className))); }
public override IMatched <IObject> Execute(Machine machine, IObject x, IObject y) => Boolean.BooleanObject(x.IsEqualTo(y)).Matched();
public override IMatched <IObject> Execute(Machine machine, INumeric x) => Boolean.BooleanObject(x.IsNegative).Matched();