本文整理汇总了C#中LNode.Slice方法的典型用法代码示例。如果您正苦于以下问题:C# LNode.Slice方法的具体用法?C# LNode.Slice怎么用?C# LNode.Slice使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LNode
的用法示例。
在下文中一共展示了LNode.Slice方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: set_tuple_type
public static LNode set_tuple_type(LNode node, IMacroContext context) {
var tupleMakers = MaybeInitTupleMakers(context.ScopedProperties);
int? size = node.Args[0, F._Missing].Value as int?;
var rest = node.Slice(size != null ? 1 : 0);
if (!MathEx.IsInRange(rest.Count, 1, 2))
return Reject(context, node, "Incorrect number of arguments");
var tupleCfg = Pair.Create(rest[0], rest.TryGet(1, null));
if (tupleCfg.A.Value == null)
tupleCfg.A = null; // Makes us ignore tuples of this size
if (tupleCfg.B == null && tupleCfg.A != null)
tupleCfg.B = F.Dot(tupleCfg.A, F.Id("Create"));
if (size == null) {
tupleMakers.Resize(1);
context.ScopedProperties[DefaultTupleMaker] = tupleCfg;
} else {
while (tupleMakers.Count <= size.Value)
tupleMakers.Add((Pair<LNode,LNode>)context.ScopedProperties[DefaultTupleMaker]);
tupleMakers[size.Value] = tupleCfg;
}
return F.Call(S.Splice);
}