Пример #1
0
        public void Eval_ReturnUnreducedExpression_WhenItIsQuoted()
        {
            var cell = new ClCell(new ClInt(1), new ClInt(2));
            var expr = BuiltIn.Quote(cell);

            var ctx = expr.Reduce(_ctx);

            Assert.That(Object.ReferenceEquals(ctx.Value, cell), Is.True);
        }
Пример #2
0
        public void Eval_ReturnUnreducedList_WhenItemOfListHasComplicatedForm()
        {
            var begin    = BuiltIn.ListOf(ClSymbol.Begin, ClBool.True, Value.Foo, Value.Bar);
            var logicAnd = BuiltIn.ListOf(ClSymbol.And, ClBool.True, Value.One);
            var expr     = BuiltIn.Quote(BuiltIn.ListOf(begin, logicAnd));

            var ctx = expr.Reduce(_ctx);

            Assert.That(BuiltIn.First(ctx.Value), Is.EqualTo(begin));
            Assert.That(BuiltIn.Second(ctx.Value), Is.EqualTo(logicAnd));
        }
Пример #3
0
        static IEnumerable <ClObj> TruthyTestCases()
        {
            yield return(new ClInt(0));

            yield return(new ClDouble(0.0));

            yield return(new ClString(string.Empty));

            yield return(ClBool.True);

            yield return(new ClChar('\0'));

            yield return(BuiltIn.Quote(BuiltIn.ListOf(ClBool.False))); // (quote . (false . nil))

            yield return(BuiltIn.Quote(BuiltIn.ListOf(ClCell.Nil)));   // (quote . (nil . nil))
        }