コード例 #1
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
        public override object ApplyVarargs(Continuation k, object[] args)
        {
            Closure proc = (Closure) args[0];
            List tailList = (List) args[args.Length - 1];
            int extraCount = args.Length - 2;

            object[] newArgs = new object[tailList.ListLength() + extraCount];
            for (int i = 0; i < extraCount; i++) {
                newArgs[i] = args[i + 1];
            }
            int pos = extraCount;
            foreach (object e in tailList) {
                newArgs[pos++] = e;
            }
            return proc.ApplyVarargs(k, newArgs);
        }
コード例 #2
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
 public abstract object ApplyVarargs(Continuation k, object[] args);
コード例 #3
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
 public abstract object Apply(Continuation k, object a, object b, object c, object d);
コード例 #4
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
 public abstract object Apply(Continuation k, object a);
コード例 #5
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
 public override object Apply(Continuation k, object a, object b, object c, object d)
 {
     return ApplyVarargs(k, new object[] {a, b, c, d});
 }
コード例 #6
0
ファイル: Closure.cs プロジェクト: tonyg/newmoon
 public override object Apply(Continuation k, object a)
 {
     return ApplyVarargs(k, new object[] {a});
 }