listedbranchinguserfunction.java
来自「计算机代数系统」· Java 代码 · 共 48 行
JAVA
48 行
package net.sf.yacas;class ListedBranchingUserFunction extends BranchingUserFunction{ public ListedBranchingUserFunction(LispPtr aParameters) throws Exception { super(aParameters); } public boolean IsArity(int aArity) { return (Arity() <= aArity); } public void Evaluate(LispPtr aResult, LispEnvironment aEnvironment, LispPtr aArguments) throws Exception { LispPtr newArgs = new LispPtr(); LispIterator iter = new LispIterator(aArguments); LispPtr ptr = newArgs; int arity = Arity(); int i=0; while (i < arity && iter.GetObject() != null) { ptr.Set(iter.GetObject().Copy(false)); ptr = (ptr.Get().Next()); i++; iter.GoNext(); } if (iter.GetObject().Next().Get() == null) { ptr.Set(iter.GetObject().Copy(false)); ptr = (ptr.Get().Next()); i++; iter.GoNext(); LispError.LISPASSERT(iter.GetObject() == null); } else { LispPtr head = new LispPtr(); head.Set(aEnvironment.iList.Copy(false)); head.Get().Next().Set(iter.GetObject()); ptr.Set(LispSubList.New(head.Get())); } super.Evaluate(aResult, aEnvironment, newArgs); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?