我想从另一个先前定义的列表 ex 中支持类似 Haskell 的列表构造: [ 2*x+1 | x<-list1] ; 同时进行评估并打印新列表。
我尝试了以下方法:
constructlist
: { ArrayList<Integer> myList= new ArrayList<Integer>();
ArrayList<Integer> newList = new ArrayList<Integer>();}
'[' op1= expression '|' op2= expression '<' '-' IDENT ']'
{ myList= lists.get($IDENT.text);
for(int i=0;i<myList.size();i++)
{
variables.put($IDENT.text,myList.get(i));
newList.add($op1.result);
}
{System.out.println(newList);}
;
但这绝对行不通。我有表达式返回任何表达式的结果(例如:x * y + 2 ...前提是变量先前已初始化。
任何人都可以建议这样做的方法吗?